当前位置: 首页 > 面试题库 >

使用iText将TXT文件转换为PDF(保留格式)

曹子平
2023-03-14
问题内容

我正在尝试使用iText库将.txt文件转换为.pdf文件。我面临的问题如下:

我在txt文件中有清晰的格式,与此类似:

TEXT                                   *******************
Other text here                        * SOME_CODE_HERE_ *
Other text                             *******************

在输出中,格式消失了,看起来像这样:

TEXT           ******************
Other text here         * SOME_CODE_HERE_ *
Other text          ******************

代码如下:

public static boolean convertTextToPDF(File file) throws Exception {

    BufferedReader br = null;

    try {

        Document pdfDoc = new Document(PageSize.A4);
        String output_file = file.getName().replace(".txt", ".pdf");
        System.out.println("## writing to: " + output_file);
        PdfWriter.getInstance(pdfDoc, new FileOutputStream(output_file)).setPdfVersion(PdfWriter.VERSION_1_7);;

        pdfDoc.open();

        Font myfont = new Font();
        myfont.setStyle(Font.NORMAL);
        myfont.setSize(11);

        pdfDoc.add(new Paragraph("\n"));

        if (file.exists()) {

            br = new BufferedReader(new FileReader(file));
            String strLine;

            while ((strLine = br.readLine()) != null) {
                Paragraph para = new Paragraph(strLine + "\n", myfont);
                para.setAlignment(Element.ALIGN_JUSTIFIED);
                pdfDoc.add(para);
            }
        } else {
            System.out.println("no such file exists!");
            return false;
        }
        pdfDoc.close();
    }

    catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (br != null) 
            br.close();
    }

    return true;
}

我还尝试使用IDENTITY_H创建BaseFont,但是它不起作用。我猜这是关于编码或类似的东西。你怎么看?我用完了解决方案…

谢谢

LE:正如艾伦(Alan)以及iText页面上的教程所建议的那样,除了我现有的代码外,我还使用了这一部分,并且效果很好。

        BaseFont courier = BaseFont.createFont(BaseFont.COURIER, BaseFont.CP1252, BaseFont.EMBEDDED);
        Font myfont = new Font(courier);

问题答案:

您需要使用等宽字体,例如Courier。

http://en.wikipedia.org/wiki/Monospaced_font

http://itextpdf.com/examples/iia.php?id=208



 类似资料:
  • 我有一个Excel文件,它有5列,几乎没有合并单元格、空白单元格、日期和其他文本信息(普通Excel文件)。 我正在使用java中的POI API读取此文件。我能够使用iText jar将文件转换为pdf表。 但是,整个格式不会复制到pdf中。(例如,合并的单元格进入一列,其他格式或设置都消失了)。 将创建一个简单的pdf表格。 如何保留与excel中相同的格式?(我想要pdf格式的excel表的

  • 我想用iText将带有图像的html文件转换成pdf格式。我在这里提供我的消息来源。 请帮助我如何使用iText将带有图像的html文件转换为pdf格式。如果没有图像或者硬编码图像路径,我可以转换html文件。提前致谢

  • 当尝试使用将文件转换为文件时,会出现以下异常: RuntimeException:Scanline必须以EOL代码字开头。在com.itextpdf.text.pdf.codec.tifffaxdecoder.readeol(tifffaxdecoder.java:1303),在com.itextpdf.text.pdf.codec.tifffaxdecoder.decode2d(tifffaxd

  • 问题内容: 对于某些要求,我想将 文本文件(定界) 转换为 ORC(优化行列) 格式。由于必须定期运行它,因此我想编写一个 Java程序 来执行此操作。我不想使用Hive临时表解决方法。有人可以帮我吗?以下是我尝试过的 运行此命令将显示以下错误,并在本地生成一个名为 part-00000 的文件 问题答案: 您可以使用Spark数据帧非常轻松地将定界文件转换为orc格式。您还可以指定/施加模式并过

  • 将html文件转换为pdf文件。我有html文件,css文件和js文件在一个文件夹,我如何转换index.html创建pdf使用Java的itext。有谁能帮我解决这个问题。有没有样本项目?

  • 我之所以发布这个问题,是因为许多开发人员或多或少地以不同的形式问同一个问题。我会自己回答这个问题(我是iText Group的创始人/首席技术官),这样它就可以成为“维基答案”如果堆栈溢出的“文档”特性仍然存在,那么这将是文档主题的一个很好的候选者。 我正在尝试将以下HTML文件转换为PDF: 在浏览器中,这种超文本标记语言如下所示: HTMLWorker根本不考虑CSS 当我使用时,我需要创建一