2017-05-11 6 views
2

In früheren Versionen von iTextSharp, ich hyphenation in der folgenden Art und Weise eingebracht haben (zB für deutsche hyphenation ist):iTextSharp und Hyphenation

HyphenationAuto autoDE = new HyphenationAuto("de", "DR", 3, 3); 
BaseFont.AddToResourceSearch(RuntimePath + "itext-hyph-xml.dll"); 
chunk = new Chunk(text).SetHyphenation(autoDE); 

In den letzten Versionen von iText, ist dies nicht mehr möglich, da die Funktion

BaseFont.AddToResourceSearch() 

wurde aus iText entfernt. Jetzt, wie diese Aussage zu ersetzen?

Bei der Überprüfung der 2. Ed. des iText IN ACTION-Handbuchs muss die Aussage offenbar überhaupt nicht ersetzt werden. Dabei findet jedoch keine Silbentrennung statt (und es treten keine Fehler auf). Ich habe auch eine neuere Version von

itext-hyph-xml.dll

und wieder verwiesen sie genommen. Das gleiche Ergebnis, keine Silbentrennung. Diese Datei befindet sich auf demselben Pfad wie iTextSharp.dll, und ich habe den Pfad in die Umgebungsvariable CLASSPATH eingefügt. Nichts hilft. Ich stecke fest, bitte hilf mir.

+0

Welche Versionen sind mit „früheren Versionen“ bedeuten können, die Sie mit „neueren Versionen“ bedeuten können? – mkl

+0

frühere Version: itextsharp504.dll, itext-hyph-xml11.dll; aktuelle Version: itextsharp559.dll, itext-hyph-xml20.dll – alrts

Antwort

2

Aufruf iTextSharp.text.io.StreamUtil.AddToResourceSearch() Werke für mich:

var content = @" 
Allein ist besser als mit Schlechten im Verein: mit Guten im Verein, ist besser als allein. 
"; 
var table = new PdfPTable(1); 
// make sure .dll is in correct /bin directory 
StreamUtil.AddToResourceSearch("itext-hyph-xml.dll"); 

using (var stream = new MemoryStream()) 
{ 
    using (var document = new Document(PageSize.A8.Rotate())) 
    { 
     PdfWriter.GetInstance(document, stream); 
     document.Open(); 
     var chunk = new Chunk(content) 
      .SetHyphenation(new HyphenationAuto("de", "DR", 3, 3)); 
     table.AddCell(new Phrase(chunk)); 
     document.Add(table); 
    } 
    File.WriteAllBytes(OUT_FILE, stream.ToArray()); 
} 

Getestet mit iTextSharp 5.5.11 und itext-hyph-xml 2.0.0.0. PDF-Ausgabe:

enter image description here

+0

Das funktionierte perfekt für mich. Vielen Dank an kuujinbo. – alrts