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

在java上从第三方HTML生成PDF

徐佐
2023-03-14

我正在尝试生成第三方超文本标记语言的PDF版本(实际上它是一个HTM文件)。这种超文本标记语言将来可能会改变,我绝对无法控制它。我想做的就是将其转换为PDF。

我已经尝试了2个解决方案:iText(使用XmlWorker)和Fliing-Saucer,但迄今为止没有成功。

我的问题是HTML文件非常不符合默认模式。示例:

    <link rel=File-List href="040602_inds_files/filelist.xml">

    <meta http-equiv=Content-Type content="text/html; charset=windows-1252">

第一个没有关闭标记(iText崩溃),第二个没有“http equiv”值的双引号(飞碟崩溃)。

我发现了很多关于这个问题的帖子,但他们都在处理自己的HTML,所以他们可以修复它并重试。但我不能这样做。

这是我试图转换的页面。

以下是我的iText转换方法:

        public static void convert(PdfWriter writer, Document document, String siteUrl) throws MalformedURLException, IOException {
            XMLWorkerHelper.getInstance().parseXHtml(writer, document,
                    new BufferedReader(new InputStreamReader(new URL(siteUrl).openStream())));
        }

下面是我的飞碟转换方法:

        public static void convertFS(String siteUrl, String fileName) throws com.lowagie.text.DocumentException, IOException {
            OutputStream os = new FileOutputStream(fileName);
            ITextRenderer renderer = new ITextRenderer();
            renderer.html" target="_blank">setDocument(siteUrl);
            renderer.layout();
            renderer.createPDF(os);

            os.close();
        }

有什么建议吗?我接受其他LIB,如果它们可以正常使用的话。Thx提前。

共有1个答案

解博明
2023-03-14

你可以先解析超文本标记语言文件的jSoup,然后将内容转换为标准的超文本标记语言文件,最后你可以使用iText生成PDF

 类似资料:
  • 安装react native navigation后,我想重建它。构建失败。 失败:构建失败,有一个异常。 出了什么问题: 无法解析配置的所有文件:app: dedegCompileClasspath。 无法解析com.aurelhubert: ahbotom导航: 2.0.6。 需要: project: app > 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--

  • 如何为第三方类创建Lombok生成器(即,我无法修改其源代码)? 我有一个无法更改的现有类: 现在我想创建一个,这样我就可以得到一个流畅的Builder api,用默认值简化的实例化。这就是我所尝试的: 代码已编译,我可以参考生成器,例如。 但是,对于和而言,这不起作用,因为返回。

  • 使用 Spring 使用 TCP 服务器 在 Spring 配置如下,来启动和关闭 H2 TCP 服务器 <bean id = "org.h2.tools.Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="star

  • 我有一个关于使用第三方API进行身份验证的问题。 我想使用Firebase来构建应用程序。我想使用来自像strava这样的第三方的数据。 用Firebase隔离Strava-api的最佳方法是什么? 如何在Firebase中实现Strava身份验证?

  • 我得到的错误与“数字.int64", "努比·布尔_“,等等。 需要WHERE/HAVING角色的SQL表达式,为True 我得到的错误与“数字.int64", "努比·布尔_“,等等。 这个 numpy 包有自己的数字数据类型,这些数据类型是从Python的数字类型扩展而来的,但包含的一些行为在某些情况下使它们无法与SQLAlchemy的某些行为协调,在某些情况下,这些行为与正在使用的底层DBA

  • 错误:ExampleUtil模块找不到module-info.class 有没有一种方法可以使用不是模块的JAR来创建运行时映像?谢谢你。