如何读取文本文件(逐行)并使用输出作为 nameS 在 java 中创建 .pdf 文件?
Posted
技术标签:
【中文标题】如何读取文本文件(逐行)并使用输出作为 nameS 在 java 中创建 .pdf 文件?【英文标题】:How to read in a text file (line-by-line) and use the output as nameS to create .pdf Files in java? 【发布时间】:2014-12-09 14:55:20 【问题描述】:我正在编写一个程序,它允许我创建多个具有一组给定名称的 PDF 文件(来自文本文件,每个名称由文件中的一行表示)。这些 PDF 文件的每一页都会有水印。
这是我正在使用的代码:
public class watermark
public static void main(String[] args)
try
BufferedReader br = new BufferedReader(new FileReader("D:\\Documents\\java\\listcos.txt"));
String line;
while ((line = br.readLine()) != null)
System.out.println(line);
try
String a = line;
PdfReader Read_PDF_To_Watermark = new PdfReader("Sample.pdf");
int number_of_pages = Read_PDF_To_Watermark.getNumberOfPages();
PdfStamper stamp = new PdfStamper(Read_PDF_To_Watermark, new FileOutputStream("New_" + line + ".pdf"));
int i = 0;
Image watermark_image = Image.getInstance("watermark.jpg");
watermark_image.setAbsolutePosition(20, 40);
PdfContentByte add_watermark;
while (i < number_of_pages)
i++;
add_watermark = stamp.getUnderContent(i);
add_watermark.addImage(watermark_image);
stamp.close();
catch (Exception e)
e.printStackTrace();
System.out.println("Done");
catch (IOException e)
e.printStackTrace();
我能够生成一个 .pdf 文件,但我得到的名称是“New_null.pdf”。另外,我只能生成一个 .pdf 文件。我想知道如何生成与给定文本文件中名称数量一样多的 .pdf 文件。
任何想法将不胜感激。
非常感谢。
Zestos。
【问题讨论】:
你得到了 null,因为 line 已经到达文件的末尾并且为 null。您已经使用每一行的文件名在该 while 循环中创建了一个 pdf。不是你只创建一个pdf,名称=文件结尾为空。查看您的代码 @MihaiC:非常感谢您指出这一点。我意识到我只需要将while
之后的“”移动到System.out.println("Done");
下面的行。
就是这样 :) 现在可以用了吗?
是的。效果很好。并且创建多个Pdf文件的问题也得到了解决。打印出该行时,它还创建了一个带有打印名称的文件。真是太棒了!
我知道问这个问题真的很傻。但是我怎样才能接受答案呢?
【参考方案1】:
在 while loop
中创建 pdf,获取行。现在,线路是null
,因为您到达了End of File
。移动循环中的所有内容!。
【讨论】:
以上是关于如何读取文本文件(逐行)并使用输出作为 nameS 在 java 中创建 .pdf 文件?的主要内容,如果未能解决你的问题,请参考以下文章