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

如何替换文本html转换成pdf?Java

都超英
2023-03-14

我想修改html文件转换为PDF。

目前我使用“ITExtrenderer”将html文件转换为pdf。

当前:

  OutputStream out = new FileOutputStream(htmlFileOutPutPath);

   //Flying Saucer 
    ITextRenderer renderer = new ITextRenderer();

    renderer.setDocument(htmlFilePath);
    renderer.layout();
    renderer.createPDF(out);

    out.close();
    //This success!! html file to pdf generated!

1-但以后我需要修改html文件,然后再生成pdf,为此我想提取html文件内容并转换成字符串,然后我替换字符串上的一些文本html:

public String htmlFileToString() throws IOException {

    StringBuilder contentBuilder = new StringBuilder();
    String path = "C:/Users/User1/Desktop/to_pdf_replace.html";

    BufferedReader in = new BufferedReader(new FileReader(path));

    String str;
    while ((str = in.readLine()) != null) {
        contentBuilder.append(str);
    }

    in.close();

    String content = contentBuilder.toString();

    return content;
}

2-然后从html中替换字符串中的标记

public String replaceHTMLcontent(String strSource)
{

    String name = "Ana";
    String age = "23";
    String html = strSource;

    strSource = strSource.replace("##Name##", name);
    strSource = strSource.replace("##Age##", age);
    //## ## -> are my html custom tags to replace

    return strSource;

}

主:

public static void main(String[] args) {

    String stringFromHtml = new DocumentBLL().htmlFileToString();
    String stringFromHtmlReplaced =  new DocumentBLL().replaceHTMLcontent(stringFromHtml );


}

但现在我不知道如何用html文件的旧html字符串替换新字符串

共有1个答案

景光赫
2023-03-14

您可以首先将整个html文件转换为字符串,然后执行

String.replace("What I want to replace", "What it will be replaced with.");

或者,如果您想替换text1并且它在特定的行中,您可以逐行遍历文件(将作为字符串读取),查看是否有text1,并实现上面使用的代码。

此外,您还可以使用这个

BufferedReader file = new BufferedReader(new FileReader("myFile.html"));
String line;
StringBuffer buffer = new StringBuffer();
while (line = file.readLine()) {
 buffer.append(line);
 buffer.append('\n');
    }
    String input = buffer.toString();

    file.close();
input = input.replace("What I want to insert into", "What I (hi there) want to insert into");

FileOutputStream out = new FileOutputStream("myFile.html");
out.write(inputStr.getBytes());
out.close();
 类似资料:
  • 问题内容: 按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我需要从现有的(X)HTML文档自动生成PDF文件。输入文件(报告)使用非常简单的基于表的布局,因此可能不需要支持真正精美的JavaScript / CSS。

  • 问题内容: 我需要从现有的(X)HTML文档自动生成PDF文件。输入文件(报告)使用非常简单的基于表的布局,因此可能不需要支持真正精美的JavaScript / CSS。 由于我习惯于在Java中工作,因此最好在Java项目中轻松使用的解决方案。不过,它仅需要在Windows系统上工作。 一种可行的方法,但不会产生高质量的输出(至少是开箱即用的),一种方法是使用CSS2XSLFO和Apache F

  • 问题内容: 我有大量文本字符串,这些字符串显然是PDF文件的原始数据,我需要将其重新制作为PDF。 目前,我正在将字符串读取到StringBuffer中,但是如果需要,可以更改它。从那里,我尝试将其写到文件中并更改扩展名(我真的希望这样做能起作用,但是我有点不知道),我尝试将其带入String,然后从中取出byte []。并将其写入文件,或使用DataOutputStream将字节放入文件中。这些

  • 问题内容: 将PDF文档转换为HTML在浏览器中查看的最佳解决方案是什么?该站点有多个PDF文档,访问者可以单击HTML格式的视图,并且应在屏幕上以HTML文件的形式查看。 运行PHP,Linux,Apache的标准网站。 问题答案: pdftohtml可以正常工作:快速,稳定,但是html结果充其量是丑陋的。我已经在有很多工作简历的网站上使用了很长时间。 但是,这是提取文本内容的好方法。 或Go

  • 我想在pdf中更改一些超文本标记语言。我所有的html都是超文本标记语言字符串,但我不知道如何在中正确传递。 如果有人知道怎么做。。一定很好。多谢多姆

  • 问题内容: 我已经使用htmldoc一段时间了,但是遇到了一些相当严重的限制。我需要最终解决方案才能在Linux机器上工作。我将从Perl应用程序调用此库/实用程序/应用程序,因此任何Perl接口都将是一个奖励。 问题答案: 注意:此答案来自2008年,现在可能不正确;请检查其他答案 PrinceXML是我见过的最好的XML(它解析常规HTML以及XML / XHTML)。最好吗?好吧,它通过了a