当前位置: 首页 > 知识库问答 >
问题:

使用Java iText从HTML生成A5 PDF文档

柴辰阳
2023-03-14

我想使用iText Java库从给定的HTML模板生成A5页面大小的PDF文档。

我已经成功地生成了一个PDF,但我得到的不是一个A5页面,而是一个A4页面(上面有文本),然后是一个空的A5页面(见:输出文档)。我做错了什么?

下面是一个示例java代码。

非常感谢你的帮助。


public final class Main {

    public static void main(String[] args) throws IOException, DocumentException {
        htmlToPdf(new StringReader("<html><head><title>Hello, World!!!</title></head><body style=\"font-family: 'Times New Roman', serif;\"><div>Hello, World!!!</div></body></html>"), new File("Test.pdf"));
    }

    private static void htmlToPdf(final StringReader htmlSource, final File pdfOutput) throws IOException, DocumentException {

        final FileOutputStream pdfOutputStream = new FileOutputStream(pdfOutput);
        final PdfDocument document = new PdfDocument();

        FontFactory.defaultEmbedding = true;

        document.setPageSize(com.itextpdf.text.PageSize.A5);

        final PdfWriter pdfWriter = PdfAWriter.getInstance(document, pdfOutputStream, PdfAConformanceLevel.PDF_A_1B);
        document.addWriter(pdfWriter);
        document.open();

        XMLWorkerHelper.getInstance().parseXHtml(pdfWriter, document, htmlSource);

        document.close();
        pdfOutputStream.close();
    }
}

共有1个答案

曾光誉
2023-03-14

您正在创建< code>PdfDocument实例,而不是< code>Document实例!正如所记录的那样,< code>PdfDocument类仅供内部使用。

 类似资料:
  • 我想从HTML模板中提取一部分,并将其转换为PDF文件,以便用户可以选择下载。(例如,单击按钮后)。 我找到了一个名为jsPDF的库,我将如何在Angular2应用程序(RC4)中使用jsPDF? 谢谢你

  • 我有一个由以下字符|分隔的csv文件。该文件有三列;一个是url(COL1),另一个是小文本(COL3),最后一个是图像位置(COL2)。我需要一个脚本,用csv文件中的数据给我这样的html代码: 我该怎么做?

  • 问题内容: 是否有任何API /解决方案可从XML文件数据和定义生成PDF报告。例如,XML定义/数据可以是: 我觉得将HTML转换为PDF也是一个很好的解决方案。 当前,我们使用iText API编写Java代码。我想外部化代码,以便非技术人员可以编辑和更改。 问题答案: 看看Apache FOP 。使用XSLT样式表将XML(或XHTML)转换为XSL- FO。然后,使用FOP读取XSL-FO

  • 我使用Apache POI从MS word文件(.doc)生成Html。我想添加来自的图像。文档转换为html,但我无法做到这一点。我找到了解决方案。docx和给定方法如下。docx。 没有太多的留档或教程可用。Javadoc也不包含太多有用的信息。根据上面的代码,我尝试添加图像,但不起作用。:/

  • 问题内容: 我有以下html代码: 我要做的就是将div中ID为“ pdf”的任何内容打印为pdf。这必须使用JavaScript来完成。然后应使用文件名“foobar.pdf”自动下载“pdf”文档 我一直在使用jspdf来执行此操作,但是它唯一具有的功能是“文本”,它仅接受字符串值。我想将HTML提交给jspdf,而不是文本。 问题答案: jsPDF可以使用插件。 为了使其能够打印HTML,您

  • 问题内容: 我正在尝试使用和从HTML 创建一个(我也曾尝试并且无法使其正常工作)。我尝试在Angular控制器中使用以下代码: 但我收到以下错误: 无法识别的文档结构:{“ _ margin”:null}“。 我的HTML由div中的两个简单表组成。 如果有人知道解决此问题的方法,或者知道从Angular将HTML转换为PDF的另一种方法,请帮助。 非常感谢您的协助! 问题答案: 好的,我知道了

  • An expert is someone who is one page ahead of you in the manual. — David Knight 像大多数工程师一样,我从来没有阅读过手册,除非或者直到产品实际出现了十万火急的情况。 然而,随着你的配置清单代码不断增多且越来越复杂,使用 Puppet 的自动文档工具 puppet doc 为你的节点(node)和类(class)生成 H

  • 我知道如何生成单个超文本标记语言页面。我想知道如何从多个超文本标记语言页面生成的pdf生成单个pdf页面。 例如,有和另一个文件我可以生成单独的pdf文件和分别来自html。我可以将它们写入文件系统,然后像iTextConcatenate示例中那样连接它们。 我只是想知道我是否可以在不将它们写入文件系统的情况下动态地组合此操作。我无法识别丢失的链接