目前我正在用iText编写几个评估程序。
连字符存在问题。
我们需要非破坏连字符\ u2010,它在某些情况下无法正常工作 例。
" 99"之间不应该有换行符和" Tage"或" 99"和" Frage"。 只有" 99天"按预期工作!
我希望那里有人知道可能是什么原因以及可以做些什么。
以下代码需要arialuni.ttf的正确路径。
提前多多感谢!德克
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import com.itextpdf.io.font.PdfEncodings;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Text;
import com.itextpdf.layout.hyphenation.HyphenationConfig;
public class problem1 {
public static void main(String[] args) throws IOException {
String fnFont = "src/main/resources/fonts/arialuni.ttf";
String fnPdf = "results/problem1.pdf";
PdfWriter writer = new PdfWriter(fnPdf);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf);
Text text = new Text(
"Dies ist ein Satz in deutscher Sprache. An hm kann man sehen, ob alle Buchstaben da sind. Und der Umbruch? 99\u2011Tage-Kaiser.\n"
+ "Dies ist ein Satz in deutscher Sprache. An hm kann man sehen, ob alle Buchstaben da sind. Und der Umbruch? 99\u2011Days-Kaiser.\n"
+ "Dies ist ein Satz in deutscher Sprache. An hm kann man sehen, ob alle Buchstaben da sind. Und der Umbruch? 99\u2011Frage-Kaiser.\n");
PdfFont font = PdfFontFactory.createFont(fnFont, PdfEncodings.IDENTITY_H, true);
text.setFont(font);
text.setFontSize(10);
Paragraph paragraph = new Paragraph(text);
paragraph.setHyphenation(new HyphenationConfig("de", "DE", 2, 2));
document.add(paragraph);
document.close();
pdf.close();
Desktop.getDesktop().open(new File(fnPdf));
}
}