0

我正在从.txt文件中读取一些文本并将其写入 pdf 文件。但在我的 pdf 中,文本显示为一些更大的字体。即使我已将.txt文件的字体大小更改为更大或太小,pdf 中的字体也会相同。

我的部分代码正在处理文本文件中的读写操作

Document document = new Document(PageSize.A4.rotate(), 36, 36, 80, 160);
 ........
 .........
           document.newPage();

            //Writing in a default page from the txt file

            document.add(new com.lowagie.text.Paragraph("\n"));
            iStream = new FileInputStream(path1); //path1 is location of .txt file
            in = new DataInputStream(iStream);
            is = new InputStreamReader(in);
            br = new BufferedReader(is);
            String strLine;
            while ((strLine = br.readLine()) != null)
            {
                Paragraph para = new com.lowagie.text.Paragraph(strLine + "\n");
                para.setAlignment(Element.ALIGN_JUSTIFIED);
                document.add(new com.lowagie.text.Paragraph(strLine + "\n"));

            }
            br.close();
            is.close();
            in.close();
            iStream.close();
            document.close();
            writer.close(); 

抱歉,我使用的是较低版本的 itext,因为现在我无法将任何第三方库添加到我的 windchill。这个版本的 itext 已经在我的 Windchill 中了。

写入时如何设置pdf文件内的字体大小。任何帮助都会非常有帮助。

4

1 回答 1

2

很简单:D

拳头,我会改变一件事:

while ((strLine = br.readLine()) != null) {
    Paragraph para = new com.lowagie.text.Paragraph(strLine + "\n");
    para.setAlignment(Element.ALIGN_JUSTIFIED);
    document.add(para);
}

这样,该段落在文档中是合理的。按照您的做法,您更改了一个段落对象的文本对齐方式,但随后在 PDF 中添加了一个完全不同的新段落。

现在解决您的问题:
您可以Font在每个段落中指定构造函数,如下所示:

Paragraph para = new com.lowagie.text.Paragraph(strLine + "\n", FontFactory.getFont("Arial", 14f /*This is the size, but as a float!*/);

可以在此处找到 lowagie API 的完整文档。

此致

于 2013-07-18T11:56:58.203 回答