可以通过使用Spire.Doc for Java进行转换。
首先需要安装Spire.Doc for Java。可在 Java 程序中添加 Spire.Doc for Java 文件作为依赖项。JAR 文件可以从此链接下载。 如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而轻松地在应用程序中导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository></repositories><dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>5.2.3</version>
</dependency></dependencies>
具体分为以下两种情况:
HTML String另存为PDF格式
Java代码如下:
import com.spire.doc.*import java.io.*public class htmlStringToWord {
public static void main(String[] args) throws Exception {
String inputHtml = "InputHtml.txt"
//新建Document对象
Document document = new Document()
//添加section
Section sec = document.addSection()
String htmlText = readTextFromFile(inputHtml)
//添加段落并写入HTML文本
sec.addParagraph().appendHTML(htmlText)
//文档另存为PDF
document.saveToFile("HTMLstringToPDF.pdf", FileFormat.PDF)
}
public static String readTextFromFile(String fileName) throws IOException{
StringBuffer sb = new StringBuffer()
BufferedReader br = new BufferedReader(new FileReader(fileName))
String content = null
while ((content = br.readLine()) != null) {
sb.append(content)
}
return sb.toString()
}
}
2.HTML file另存为PDF格式
import com.spire.doc.*import com.spire.doc.documents.XHTMLValidationTypepublic class htmlFileToWord {
public static void main(String[] args) throws Exception {
//加载HTML文档
Document document = new Document()
document.loadFromFile("InputHtmlFile.html", FileFormat.Html, XHTMLValidationType.None)
//文档另存为PDF
document.saveToFile("Result.pdf",FileFormat.PDF)
}
}
希望对您有帮助。
utils - htmlToPdf.js
main.js
1、如果在多个页面使用,给函数定义一个参数,参数为要导出页面部分的id。
将 '#pdfDom' 替换为参数即可
2、将导出文件的名称也作为参数传入函数
此种方式也可用于vue,尝试后可行,需要调节部分参数,但毕竟不太合适。
jQuery不需要调节。
https://github.com/zhangshaoliang/downLoadPDF
vue方式
jQuery方式
目前项目使用的是前端加后端方式,前端提供模板,echarts图表的话需要转为base64发送给后台。后台使用iText。目前存在的问题是后台不支持css3语法,只支持到css2,所以复杂的样式页面显示错乱,考虑个别页面使用纯前端实现。
网站导航
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)