PDF转HTML 查看PDF文件代码
C#在线预览文档(word,excel,pdf,txt,png)
C#在线预览⽂档(word,excel,pdf,txt,png) C#在线预览⽂档(word,excel,pdf,txt,png)1、预览⽅式:将word⽂件转换成html⽂件然后预览html⽂件2、预览word⽂件:需要引⼊Interop.Microsoft.Office.Interop.Word.dll(Com组件)3、预览Excel⽂件:需要引⼊Interop.Microsoft.Office.Interop.Excel.dll(Com组件,Microsoft Excel 12.0(or other version) Object Library)4、PDF⽂件直接嵌⼊到浏览器中进⾏查看,⽆需转换(需安装pdf阅读器)5、⽂本⽂件直接嵌⼊到浏览器进⾏查看,⽆需转换6、图⽚⽂件直接嵌⼊到浏览器进⾏查看,⽆需转换Excel预览⽅法using Microsoft.Office.Interop.Excel;using System;using System.Collections;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Web;///<summary>/// Summary description for ExcelPreview///</summary>public class ExcelPreview{public static void Priview(System.Web.UI.Page p, string inFilePath, string outDirPath = ""){Microsoft.Office.Interop.Excel.Application excel = null;Microsoft.Office.Interop.Excel.Workbook xls = null;excel = new Microsoft.Office.Interop.Excel.Application();object missing = Type.Missing;object trueObject = true;excel.Visible = false;excel.DisplayAlerts = false;string randomName = DateTime.Now.Ticks.ToString(); //output fileNamexls = excel.Workbooks.Open(inFilePath, missing, trueObject, missing,missing, missing, missing, missing, missing, missing, missing, missing,missing, missing, missing);//Save Excel to Htmlobject format = Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml;Workbook wsCurrent = xls;//(Workbook)wsEnumerator.Current;String outputFile = outDirPath + randomName + ".html";wsCurrent.SaveAs(outputFile, format, missing, missing, missing,missing, XlSaveAsAccessMode.xlNoChange, missing,missing, missing, missing, missing);excel.Quit();//Open generated HtmlProcess process = new Process();eShellExecute = true;process.StartInfo.FileName = outputFile;process.Start();}}Pdf类using Microsoft.Office.Interop.Word;using System;using System.Collections.Generic;using System.Diagnostics;using System.IO;using System.Linq;using System.Web;///<summary>/// Summary description for WordPreview///</summary>public class PDFPreview{public static void Priview(System.Web.UI.Page p, string inFilePath){p.Response.ContentType = "Application/pdf";string fileName = inFilePath.Substring(stIndexOf('\\') + 1);p.Response.AddHeader("content-disposition", "filename=" + fileName);p.Response.WriteFile(inFilePath);p.Response.End();}}Word预览⽅法using Microsoft.Office.Interop.Word;using System;using System.Collections.Generic;using System.Diagnostics;using System.IO;using System.Linq;using System.Web;///<summary>/// Summary description for WordPreview///</summary>public class WordPreview{public static void Priview(System.Web.UI.Page p, string inFilePath, string outDirPath = ""){object missingType = Type.Missing;object readOnly = true;object isVisible = false;object documentFormat = 8;string randomName = DateTime.Now.Ticks.ToString();object htmlFilePath = outDirPath + randomName + ".htm";string directoryPath = outDirPath + randomName + ".files";object filePath = inFilePath;//Open the word document in backgroundApplicationClass applicationclass = new ApplicationClass();applicationclass.Documents.Open(ref filePath,ref readOnly,ref missingType, ref missingType, ref missingType,ref missingType, ref missingType, ref missingType,ref missingType, ref missingType, ref isVisible,ref missingType, ref missingType, ref missingType,ref missingType, ref missingType);applicationclass.Visible = false;Document document = applicationclass.ActiveDocument;//Save the word document as HTML filedocument.SaveAs(ref htmlFilePath, ref documentFormat, ref missingType,ref missingType, ref missingType, ref missingType,ref missingType, ref missingType, ref missingType,ref missingType, ref missingType, ref missingType,ref missingType, ref missingType, ref missingType,ref missingType);//Close the word documentdocument.Close(ref missingType, ref missingType, ref missingType);#region Read the Html File as Byte Array and Display it on browser//byte[] bytes;//using (FileStream fs = new FileStream(htmlFilePath.ToString(), FileMode.Open, FileAccess.Read)) //{// BinaryReader reader = new BinaryReader(fs);// bytes = reader.ReadBytes((int)fs.Length);// fs.Close();//}//p.Response.BinaryWrite(bytes);//p.Response.Flush();//p.Response.End();#endregionProcess process = new Process();eShellExecute = true;process.StartInfo.FileName = htmlFilePath.ToString();process.Start();#region Delete the Html File and Diretory 删除⽣成的⽂件//File.Delete(htmlFilePath.ToString());//foreach (string file in Directory.GetFiles(directoryPath))//{// File.Delete(file);//}//Directory.Delete(directoryPath);#endregion}}⽂本预览⽅法using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web;///<summary>/// Summary description for TextFilePreview///</summary>public class TextFilePreview{public static void Preview(System.Web.UI.Page p, string inFilePath){string fileName = inFilePath.Substring(stIndexOf('\\') + 1);p.Response.ContentType = "text/plain";p.Response.ContentEncoding = System.Text.Encoding.UTF8; //保持和⽂件的编码格式⼀致p.Response.AddHeader("content-disposition", "filename=" + fileName);p.Response.WriteFile(inFilePath);p.Response.End();}}图⽚预览⽅法using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web;///<summary>/// Summary description for TextFilePreview///</summary>public class TextFilePreview{public static void Preview(System.Web.UI.Page p, string inFilePath){string fileName = inFilePath.Substring(stIndexOf('\\') + 1);p.Response.ContentType = "images/*";p.Response.ContentEncoding = System.Text.Encoding.UTF8;p.Response.AddHeader("content-disposition", "filename=" + fileName);p.Response.WriteFile(inFilePath);p.Response.End();}}以上的pdf,txt,图⽚这个三种⽅式在MVC下不可⽤,在aspx界⾯可⽤。
.NET(C#)中使用pdf2htmlEX实现pdf向html的格式转换器word精品文档3页
(C#)中使用pdf2htmlEX实现pdf向html的格式转换器1 背景目前,网络阅读平台在线阅读pdf文档的较为流行的解决方案是将pdf 文档转换成swf格式,然后使用flash播放器进行播放。
该解决方案的缺点较多:一,对于没有安装flash播放器的用户,pdf文档内容可能不能正常显示;二,使用flash在线播放容易导致清晰度降低,影响阅读;三,用户无法复制其中的内容;四,对屏幕尺寸各异的移动设备缺乏自适应能力。
将pdf转换成html文档则可以解决上述问题。
网络上和文献中分享的该领域的技术大部分是通过Java语言实现的。
笔者通过查阅文献和相关技术资料,结合本人的开发实践,提供了(C#)中基于pdf2htmlEX开源工具的格式转换器的实现技术。
2 使用pdf2htmlEX在(C#)中实现pdf向html的转换2.1 pdf2htmlEX介绍pdf 转换为html(下文部分地方简称为pdf2html)的技术思路是将pdf文档中的文字、图片、字体等信息提取出来,然后按照html的语法写入html文档中[1]。
pdf2htmlEX是免费使用的可高保真地对pdf至html 转换的工具,作者为王璐,在网上能找到较多的版本,笔者所使用的版本的下载地址是:http://download.csdn/detail/zhouyifan2009/8552783。
pdf2htmlEX的主要特点有以下四个:首先,它能准确提取字体,保证最大限度地原样输出;第二,保证渲染准确性,针对Web进行优化,如对文件进行必要的压缩等;第三,其他内容用背景图片的形式显示;第四,单文件输出,即转换结果是生成一个html文件,图片等信息不存放在单独的文件中。
[2]2.2 实现步骤pdf2htmlEX工具是控制台程序,没有自己的用户界面(点击pdf2htmlEX.exe文件时,程序窗口一闪而过,用户不能直接使用),必须由操作系统自带的cmd.exe调用或者其他第三方程序调用来实现它的功能。
PDF转word方法全面盘点
PDF转word方法全面盘点PDF是由Adobe公司发明的文件格式,Portable Document Format的缩写,意为“便携文档格式”。
它已成为事实上的电子文档标准,越来越多的电子出版物、软件说明书、填报表格多采用PDF格式。
正是因为如此,在日常工作中要经常处理PDF文件。
有时是文档制作成PDF文件,有时则需要将PDF文件转换成MS word的Doc格式…本文将汇总一些PDF 转word方法,希望对你有所帮助。
邮箱篇:免安装,且简易,邮箱转pdf为html或文本格式优点:速度快、可信任;各种语言编码的文字都可转换(效果不一);免去安装软件之劳苦…缺点:图片的转换效果令人纠心。
QQ邮箱有网友戏言:QQ邮箱是腾讯推出的唯一好用的服务!对此我持保留意见,至少腾讯的很多服务我是离不开的!至于QQ邮箱嘛,的确是我使用频率很高的服务……这个使用很简单!只需将要转换的文件发送到到QQ邮箱里面,然后将附件以纯文本的方式打开即可。
(图:1 QQ邮箱的纯文本方式查看功能)然后复制过去即可。
(图:2 QQ邮箱的纯文本方式查看功能)比较适合少图的PDF文件。
如果转换的PDF文件包含众多图片的话!很容易出现说该文件已损坏的情况。
(图:3 QQ邮箱的报错)此外,如果要是要转换的文件超出普通邮件限制的附件大小的话,还可以试试QQ邮箱的文件中转站功能。
将要转换的文件上传后转换成文本格式或者HTML格式后再复制到word就ok了。
(图:4 QQ邮箱文件中转站功能)(图:5 QQ邮箱文件中转站功能)第二:Gmail邮箱转pdf为html格式,然后再复制到word里。
将要转换的文件发送到gmail,在附件一栏有“查看”选项,点击进入后在上面点击“以纯HTML“查看即可。
(图:6 Gmail的查看功能)(图:7 Gmail以纯HTML查看功能)但是,目前似乎gmail有些小问题。
每当我点击以“纯HTML”查看文件的时候,它都会弹出保存窗口,然后保存打开之后还是gmail的邮箱……who can tell me why?以前可是能用的…(图:8 Gmail的一个小问题)网站篇:免费而专业的转换网站强烈推荐:,一个相当专业且免费的网站。
Java 将Word转为PDF、html、图片、XPS(基于Spire.Cloud.SDK for Java)
Java 将Word转为PDF/Html/图片/XPS/SVG(基于Spire.Cloud.SDK for Java)Spire.Cloud.SDK for Java API提供了ConverApi接口支持将Word文档转换为多种文档格式,包括将Word转为PDF、Html、位图Bitmap(JPEG/BMP/ PNG)、矢量图Vectorgraph(支持WMF/SVG)、XPS、PostScript、PCL、dotx、dotm、docm、odt、wordxml、wordml、doc、docx、rtf、epub等等。
下面将详细介绍如何来实现转换。
步骤一、导入jar文件创建Maven项目程序,通过maven仓库下载导入。
以IDEA为例,新建Maven项目,在pom.xml文件中配置maven仓库路径,并指定spire.cloud.sdk的依赖,如下:<repositories><repository><id>com.e-iceblue</id><name>cloud</name><url>/repository/maven-public/</url></repository></repositories><dependencies><dependency><groupId> cloud </groupId><artifactId>spire.cloud.sdk</artifactId><version>3.5.0</version></dependency><dependency><groupId> com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.1</version></dependency><dependency><groupId> com.squareup.okhttp</groupId><artifactId>logging-interceptor</artifactId><version>2.7.5</version></dependency><dependency><groupId> com.squareup.okhttp </groupId><artifactId>okhttp</artifactId><version>2.7.5</version></dependency><dependency><groupId> com.squareup.okio </groupId><artifactId>okio</artifactId><version>1.6.0</version></dependency><dependency><groupId> io.gsonfire</groupId><artifactId>gson-fire</artifactId><version>1.8.0</version></dependency><dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>1.5.18</version></dependency><dependency><groupId> org.threeten </groupId><artifactId>threetenbp</artifactId><version>1.3.5</version></dependency></dependencies>完成配置后,点击“Import Changes” 即可导入所有需要的jar文件。
Word文件如何转换为PDF文件并在网页里显示PDF文件
如何在中Word文件转换为PDF文件并在网页里显示PDF文件在开发项目时,可能有时需要将项目中上传的文件进行转换,如将Word文件转换为PDF文件。
要实现这一功能,可能有些人根本就毫无头绪或者是实现方法很复杂、不容易理解而且效率低,但若是通过PageOfficeCtrl控件,则很容易就能实现这一转换,并且还可以利用PDFCtrl控件在网页里显示转换生成的PDF文件。
下面我就来和大家分享一下,通过这两个控件实现文档转换并显示的一个示例。
第一步:请先安装PageOffice的服务器端的安装程序,之后在你的网站中根目录下添加pageoffice文件夹(在网站的“下载中心”中可下载相应的压缩包,解压之后直接将PageOffice实例代码里的pageoffice文件夹拷贝到根目录下就可以了)。
第二步:在网站中添加文件夹存放word模板文件和转后的PDF文件,我习惯命名为“doc”,将要转换的文件“template.doc”拷贝到该文件夹下。
第三步:在网站中创建web页面WordToPDF.aspx。
在工具箱中拖动一个PageOfficeCtrl控件到前台页面上(PageOfficeCtrl控件位于工具箱最下方)。
然后在后台添加代码设置PageOffice的服务器页面、保存页面、打开Word文件和添加自定义按钮,部分代码如下://设置服务器页面PageOfficeCtrl1.ServerPage = "pageoffice/server.aspx";//设置保存页PageOfficeCtrl1.SaveFilePage = "SaveFile.aspx";//添加自定义按钮PageOfficeCtrl1.AddCustomToolButton("保存", "Save()", 1);PageOfficeCtrl1.AddCustomToolButton("另存为PDF文件", "SaveAsPDF()", 1);string fileName = "template.doc";//定义将要转换的PDF文件的名称pdfName = fileName.Substring(0, fileName.Length - 4) + ".pdf";//打开Word文件PageOfficeCtrl1.WebOpen(Server.MapPath("doc/") +fileNamen, PageO ffice.OpenModeType.docNormalEdit, "张佚名");之后在前台页面添加执行自定义按钮“保存”、“另存为PDF文件”时执行的的JS函数:Save()、SaveAsPDF(),代码如下://保存function Save() {document.getElementByIdx_x_x_x("PageOfficeCtrl1").WebSave();}//另存为PDF文件function SaveAsPDF() {document.getElementByIdx_x_x_x("PageOfficeCtrl1").WebSaveAsPDF(); //转换为PDF文件后,在OpenPDF.aspx中打开转换后的PDF文件window.open("OpenPDF.aspx?fileName=<%=pdfName %>");} 第四步:在网站中创建动态页面SaveFile.aspx保存Word文件,在后台添加代码如下://定义FileSaver对象PageOffice.FileSaver fs = new PageOffice.FileSaver();//保存Word文件fs.SaveToFile(Server.MapPath("doc/") + fs.FileName);//关闭FileSaver对象fs.Close();第五步:显示转换得到的PDF文档。
实现在线预览PDF的几种解决方案
实现在线预览PDF的⼏种解决⽅案因客户需要实现PDF的预览处理,在⽹上找了⼀些PDF在线预览的解决⽅案,有的⽤PDFJS的在线预览⽅式,有的使⽤PDFObject的嵌⼊式显⽰,有的通过转换JPG/PNG⽅式实现间接显⽰的⽅式,开始是想通过简单的⽅式,能够使⽤JS插件实现预览最好,可是在线预览总是有⼀些不⾜,如不同浏览器的兼容问题,甚⾄不同的⼿机平台中展⽰的效果也不⼀样,不过最好还是采⽤了间接的⽅式,把PDF转换为图⽚展⽰效果,达到客户的要求。
1、在线实现预览的⽅式⼀开始我还是很倾向使⽤这种⽅式,希望能采⽤⼀个较为好的JS插件的⽅式,实现PDF的在线预览(通过Web预览),因此在Github上找到排名⽐较⾼的PDF插件⼀看排名还是很⾼的,那么采⽤它应该不错,查看⾃带的PDF⽂件,效果还是杠杠的。
不过客户的要求是显⽰正常的发票PDF⽂件,换⼀下⽂件地址,有部分信息显⽰不了,找了⼀下没有看到解决⽅法,所以效果不达标。
连基本的发票也显⽰不了,那我这个就不能⽤它来显⽰发票PDF⽂件了。
最后,测试了使⽤PDFObject()的⽅式实现在线嵌⼊PDF显⽰的⽅式,这个JS插件也是不错的,同样可以在GitHub上可以找到。
它的使⽤也是很简单的,如下代码所⽰。
<script src="/js/pdfobject.js"></script><script>PDFObject.embed("/pdf/sample-3pp.pdf", "#example1");</script>如果需要设置预览窗⼝的⼤⼩,通过设置样式即可。
<style>.pdfobject-container { height: 500px;}.pdfobject { border: 1px solid #666; }</style>显⽰的效果是正常的了,不过我在苹果⼿机打开Safari浏览器测试发现,不能正常显⽰。
pdf2htmlex实现原理
pdf2htmlex实现原理
PDF2HTML EX是一种将PDF文档转换为HTML格式的在线工具。
它的实现原理主要包括以下几个方面:
1. 页面解析:首先,程序会对输入的PDF文档进行解析,将其分割成多个页面。
2. 文本识别:然后,程序会使用光学字符识别(OCR)技术,将每个页面上的文本进行识别,提取出文本内容。
3. 页面布局分析:接下来,程序会分析每个页面的布局,包括文本的位置、大小、字体等,以便在生成的HTML页面中尽可能地保留原文的布局和格式。
4. 文本转换:最后,程序会将识别出的文本转换为其对应的HTML标签,如<p>、<h1>、<img>等。
5. 页面生成:将所有页面的HTML代码组合在一起,生成一个完整的HTML文件。
这个过程涉及到计算机视觉、图像处理、自然语言处理等多个领域的技术。
PDF2HTML EX能够准确地转换PDF文档的内容和布局,使得用户可以在网页上查看和编辑PDF文档。
链接转pdf java
在Java中将链接转换为PDF文件,通常需要使用一些第三方库,如Jsoup 用于抓取网页内容,然后使用iText或PDFBox等库将HTML内容转换为PDF 格式。
以下是一个基本的步骤示例:
1. 添加依赖项:
对于Jsoup:在你的Maven或Gradle构建文件中添加Jsoup依赖。
对于iText或PDFBox:添加相应的PDF生成库依赖。
2. 使用Jsoup抓取网页内容:
java代码:
3. 将HTML内容转换为PDF:
如果使用iText:
java代码:
如果使用PDFBox:
java代码:
注意:上述PDFBox示例中并没有直接将HTML转换为PDF,因为PDFBox 本身并不直接支持HTML到PDF的转换。
你可能需要结合使用Flying Saucer 或Apache FOP等其他库来实现这一功能。
请根据你的具体需求和环境选择合适的库和方法进行链接转PDF的操作。
同时,由于网络抓取和PDF生成可能会涉及到版权和许可问题,确保你在进行此类操作时遵守相关法律法规和网站的使用条款。
calibre html 转pdf java
calibre html 转pdf java使用Calibre进行HTML转PDF的Java实现过程大致如下:首先,你需要确保你已经安装了Calibre。
你可以从它的官方网站下载并安装它。
然后,你可以使用Java的`Runtime.getRuntime().exec()`方法来执行Calibre命令。
以下是一个简单的示例:```javaimport java.io.*;public class HtmlToPdf {public static void main(String[] args) {try {// 你的HTML文件路径String htmlFilePath = "/path/to/your/html/file.html";// 转换后的PDF文件路径String pdfFilePath = "/path/to/output/file.pdf";// 构建Calibre命令String calibreCommand = "calibre -z -o'file:///" + htmlFilePath + "' '" + pdfFilePath + "'";// 执行命令Process process = Runtime.getRuntime().exec(calibreCommand);// 读取命令的输出BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));String line;while ((line = reader.readLine()) != null) {System.out.println(line);}// 等待命令执行完成int exitCode = process.waitFor();System.out.println("Calibre command exited with code " + exitCode);} catch (IOException | InterruptedException e) {e.printStackTrace();}}}```注意,你需要将`htmlFilePath`和`pdfFilePath`替换为你实际的文件路径。
html转pdf的几种方法
html转pdf的几种方法
有几种方法可以将HTML文件转换为PDF文件。
以下是其中一些常见的方法:
1.使用在线转换工具:有很多在线工具可以将HTML文件转换为
PDF格式,例如pdfcrowd、HTML to PDF等。
你只需上传HTML
文件,选择转换选项,然后等待转换完成并下载生成的PDF文
件。
2.使用浏览器打印功能:现代的Web浏览器(如Google Chrome
和Mozilla Firefox)通常都内置了“打印”功能,并提供将网页内
容保存为PDF文件的选项。
只需打开HTML文件,点击浏览器
菜单中的“打印”选项,然后选择“保存为PDF”或类似选项即可。
3.使用第三方库或工具:有一些专门的库和工具可以在编程环境
中将HTML转换为PDF。
例如,使用Python可以使用库如pdfkit、
WeasyPrint、PyPDF2等。
这些库允许你以编程方式加载HTML
文件并将其转换为PDF。
4.使用专业的PDF转换软件:还有一些专业的PDF转换软件,可
以将HTML文件转换为PDF。
这些软件通常提供更多的自定义
选项和功能,例如调整页面布局、添加水印等。
每种方法都有其优缺点,选择最适合你的方法取决于你的需求和偏好。
如果只是偶尔需要将HTML转换为PDF,那么在线工具或浏览器打印功能可能是最简单的选择。
如果需要在程序中自动化转换,那么使用相关的库或工具会更合适。
pdf 转 freemarker
pdf 转freemarker摘要:1.PDF 格式与FreeMarker 格式的概述2.PDF 转FreeMarker 的方法与工具3.转换过程中的注意事项4.实际操作步骤与示例5.转换后的应用场景正文:一、PDF 格式与FreeMarker 格式的概述PDF(Portable Document Format)是一种通用的文档格式,可以跨平台、跨设备进行查看和打印。
它由Adobe 公司于1993 年推出,已成为一种广泛使用的电子文档格式。
PDF 文件包含了文字、图片、链接、表格等丰富的信息,同时还支持多语言、注释、搜索等功能。
FreeMarker 是一种基于Java 的模板引擎,它允许用户通过模板文件定义输出格式,并在运行时将数据填充到模板中,生成各种格式的输出结果。
FreeMarker 广泛应用于Web 开发、数据处理、报告生成等领域,具有较强的灵活性和可扩展性。
二、PDF 转FreeMarker 的方法与工具要将PDF 格式转换为FreeMarker 格式,可以采用以下方法:1.使用在线转换工具:一些网站提供在线将PDF 转换为FreeMarker 的服务,用户只需上传PDF 文件,即可得到相应的FreeMarker 代码。
但这种方法可能存在数据安全风险,不建议处理敏感信息。
2.使用开源库:一些开源库提供了将PDF 转换为FreeMarker 格式的功能,如iText、Apache PDFBox 等。
用户可以利用这些库编写自定义程序,实现PDF 到FreeMarker 的转换。
三、转换过程中的注意事项在PDF 转FreeMarker 的过程中,需要注意以下几点:1.字体与排版:FreeMarker 不支持PDF 中的嵌入字体,因此在转换过程中可能会丢失部分字体信息。
为了保证转换后的文档排版效果,建议使用Web 标准字体。
2.链接与交互:PDF 文件中的链接和交互功能在转换后可能无法正常使用。
pdf 解析 xml 工具及使用说明
pdf 解析xml 工具及使用说明PDF解析为XML的工具主要有Adobe Acrobat Pro DC、全方位PDF转换器以及其他如Nitro PDF、PDFelement等PDF转换器。
以下是这些工具的使用说明:1. Adobe Acrobat Pro DC:这是一款专业的PDF编辑和转换工具,它提供了将PDF文件转换为多种格式的功能,包括XML。
用户只需打开PDF文件,选择“文件”菜单中的“导出到”选项,然后选择XML格式即可完成转换。
2. 全方位PDF转换器:首先,下载并打开全方位PDF转换器,进入主界面。
选择工具栏中的“XML”,表示进行的是PDF转XML的操作。
点击左下角部分的“添加文件”,选择需要转换的文档。
上传完成后,界面会显示文件名、文档的总页数、需要转换的页数以及转换进度。
随后,选择输出目录,方便查找。
最后,点击“开始”,文档便开始转换。
全方位PDF转换器有两种转换模式:兼容转换和极速转换。
软件默认的是极速转换,如果在转换过程中出现问题,可以改为兼容转换。
3. 其他PDF转换器(如Nitro PDF、PDFelement):这些工具的使用方式与Adobe Acrobat Pro DC类似。
用户只需安装并打开相应的软件,导入PDF文件,选择XML 格式,然后点击转换按钮即可完成转换。
请注意,以上信息可能会因软件版本更新而发生变化。
如果在使用过程中遇到问题,建议查看软件的官方帮助文档或联系软件的技术支持团队以获取更详细的帮助。
在成功将PDF转换为XML格式后,你可以使用XML解析器来提取其中的数据。
XML解析器可以根据标签和属性来定位和提取数据,用户可以根据自己的需求编写相应的代码来实现数据的提取和处理。
此外,如果需要将XML数据转换为其他格式,如HTML、CSV等,可以使用XSLT(可扩展样式表语言转换)来实现。
pdf匿名处理方法
pdf匿名处理方法PDF匿名处理方法在处理敏感文档时,对PDF进行匿名处理是非常重要的,以保护个人隐私和信息安全。
以下是一些简单易行的PDF匿名处理方法:1. 删除元数据•元数据包括作者、创建日期、修改日期等信息。
•使用PDF编辑软件删除或修改元数据。
•保持文件属性中的详细信息不可识别。
2. 删除或模糊敏感信息•使用PDF编辑器手动删除或模糊文本、图像等敏感信息。
•选择性地删除或覆盖特定区域。
•保证处理后的PDF文档不包含任何个人身份信息。
3. 转换文件格式•将PDF转换为其他格式,例如图片或文本文件。
•转换过程中删除或模糊敏感信息。
•将处理后的文件重新转换为PDF格式。
4. 使用安全删除工具•利用专门的PDF安全删除工具自动识别并删除敏感信息。
•选择可靠且经过验证的软件。
•确保工具不会将数据上传到云端或其他在线服务器。
5. 采用密码保护•为PDF文件设置密码,限制打开、编辑和打印权限。
•使用强密码,包括字母、数字和特殊字符。
•避免使用与个人信息相关的密码。
6. 制作PDF副本•创建一个PDF副本,仅对副本进行编辑和处理。
•删除原始文件,确保仅保留处理后的副本。
•避免在处理过程中泄露敏感信息。
总之,处理敏感PDF文件时,务必采取适当的匿名处理方法,确保个人隐私和信息安全。
在选择处理工具时,注意软件的可靠性和安全性,避免使用可能泄露数据的在线服务。
通过以上措施,可以有效地保护个人信息免受滥用或泄露。
PDF匿名处理方法(续)以下是一些额外的PDF匿名处理方法,以保护个人隐私和信息安全:7. 使用开源工具•选择可靠的开源PDF编辑器进行匿名处理。
•了解并审查开源软件的源代码,确保其安全性。
•使用社区推荐且活跃更新的开源工具。
8. 避免使用不安全的网络•在处理敏感PDF文件时,避免使用公共WiFi或不受信任的网络连接。
•使用虚拟专用网络(VPN)对网络连接进行加密。
•确保计算机和网络设备的安全性。
9. 存储处理后的文件•将处理后的PDF文件存储在安全的位置,例如加密的硬盘或云存储服务。
Html转pdf(JAVA)
Html转pdf(JAVA)html转pdf⼯具类/*** HTML转PDF的⼯具类*/SystemPath(获取路径,需要⾃⼰处理下)public class ConverterHTMLToPDF {private static Logger logger = Logger.getLogger(ConverterHTMLToPDF.class.getName());public void converterHTMLToPDF(String content, String myRandom){String toPdfExeHome = "";ponent.config.ConfigXMLReader reader=new ponent.config.ConfigXMLReader();toPdfExeHome = reader.getAttribute("topdftools", "topdfhome");String osName = System.getProperties().getProperty("").toUpperCase();String htmlFile_temp_path = SystemPath.getRootFilePath()+File.separator+"platform"+File.separator+"custom"+File.separator+"custom_form"+File.separator+"run"+File.separator+"export2html_temp.html"; htmlFile_temp_path=SystemPath.getRootFilePath()+File.separator+"platform"+File.separator+"custom"+File.separator+"custom_form"+File.separator+"run"+File.separator+"export2html_govtemp.html"; logger.debug("临时HTML⽂件"+htmlFile_temp_path);String fileContent = "";try {fileContent = mons.io.FileUtils.readFileToString(new File(htmlFile_temp_path), "UTF-8");} catch (IOException e) {e.printStackTrace();}fileContent=fileContent.replace("[htmlcontent]",content);String temppath=SystemPath.getRootFilePath()+File.separator+"upload"+File.separator+"tempfile";String htmlName=myRandom+".html";String pdfName=myRandom+".pdf";//pdfName="export2pdf_temp.pdf";String htmlFile_path=temppath+File.separator+"temphtml"+File.separator+htmlName;String pdfFile_path=temppath+File.separator+"temppdf"+File.separator+pdfName;logger.debug("HTML的路径:"+htmlFile_path+",PDF⽂件路径"+pdfFile_path);try {mons.io.FileUtils.writeStringToFile(new File(htmlFile_path), fileContent, "UTF-8");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}Runtime r = Runtime.getRuntime();try {Process pro = null;if (osName.startsWith("WIN")){pro = r.exec( toPdfExeHome+"\\wkhtmltopdf.exe "+htmlFile_path+" "+pdfFile_path);}else{logger.debug("linux tttt:"+toPdfExeHome+File.separator+"wkhtmltopdf "+htmlFile_path+" "+pdfFile_path);pro = r.exec( toPdfExeHome+File.separator+"wkhtmltopdf "+htmlFile_path+" "+pdfFile_path);}new DoOutput(pro.getInputStream()).start();new DoOutput(pro.getErrorStream()).start();try {pro.waitFor();} catch (InterruptedException e) {e.printStackTrace();}} catch (IOException eee) {eee.printStackTrace();}}/*** 把⾃定义流程的html转换成pdf* @param htmlFile html⽂件* @param pdfFile pdf⽂件*/public void converterArchivesFileHTMLToPDF(File htmlFile,File pdfFile){String toPdfExeHome = "";ponent.config.ConfigXMLReader reader=new ponent.config.ConfigXMLReader();toPdfExeHome = reader.getAttribute("topdftools", "topdfhome");String osName = System.getProperties().getProperty("").toUpperCase();String htmlFile_path= htmlFile.getAbsolutePath();String pdfFile_path= pdfFile.getAbsolutePath();logger.debug("HTML的路径:"+htmlFile_path+",PDF⽂件路径"+pdfFile_path);Runtime r = Runtime.getRuntime();try {Process pro = null;if (osName.startsWith("WIN")){pro = r.exec( toPdfExeHome+"\\wkhtmltopdf.exe "+htmlFile_path+" "+pdfFile_path);}else{logger.debug("linux tttt:"+toPdfExeHome+File.separator+"wkhtmltopdf "+htmlFile_path+" "+pdfFile_path);pro = r.exec( toPdfExeHome+File.separator+"wkhtmltopdf "+htmlFile_path+" "+pdfFile_path);}new DoOutput(pro.getInputStream()).start();new DoOutput(pro.getErrorStream()).start();try {pro.waitFor();} catch (InterruptedException e) { e.printStackTrace();}} catch (IOException eee) {eee.printStackTrace();}}。
Python实现网页文件转PDF文件和PNG图片的示例代码
Python实现⽹页⽂件转PDF⽂件和PNG图⽚的⽰例代码⽬录⼀、html⽹页⽂件转pdf⼆、html⽹页⽂件转png⼀、html⽹页⽂件转pdf#将HTML⽂件导出为PDFdef html_to_pdf(html_path,pdf_path='.\\pdf_new.pdf',html_encoding='UTF-8',path_wkpdf = r'.\Tools\wkhtmltopdf.exe'):'''将HTML⽂件导出为PDF:param html_path:str类型,⽬标HTML⽂件的路径,可以是⼀个路径,也可以是多个路径,以list⽅式传⼊路径;或者⼀个或者多个⽹址;或者为⼀个字符串 :param pdf_path:str类型,需要导出的PDF⽂件的路径:param html_encoding:str类型,html的编码格式,具体要看html页⾯到底是以什么编码格式保存的:param path_wkpdf:str类型,path_wkpdf = r'.\Tools\wkhtmltopdf.exe' # ⼯具路径:return:'''cfg = pdfkit.configuration(wkhtmltopdf=path_wkpdf)options = {"encoding": html_encoding # 这个具体要看html页⾯到底是以什么编码格式保存的}if 'http' in str(html_path) and ('html' not in str(html_path) or 'HTML' not in str(html_path)): #判断是否为⾮⽹址#从url获取html,再转为pdfprint('http=>pdf')# pdfkit.from_url('https:///ip', 'ip.pdf', options=options, configuration=cfg)# pdfkit.from_url(['https:///ip', 'https:///ip'], 'ip.pdf', options=options,configuration=cfg) # 传⼊列表pdfkit.from_url(html_path, pdf_path, options=options, configuration=cfg)elif 'html' in str(html_path) or 'HTML' in str(html_path): #判断是否为HTML⽂件#将html⽂件转为pdfprint('html,str=>pdf')# pdfkit.from_file(r'./helloworld.html', 'helloworld.pdf',options=options, configuration=cfg)pdfkit.from_file(html_path, pdf_path, options=options, configuration=cfg)elif isinstance(html_path, list) and ('html' in str(html_path) or 'HTML' in str(html_path)): #判断html⽬标是否为list,# 如:[r'./helloworld.html', r'./111.html', r'./222.html']print('html,list=>pdf')pdfkit.from_file(html_path, pdf_path,options=options, configuration=cfg) # 传⼊列表else:#将字符串转为pdfprint('from_string=>pdf')pdfkit.from_string(html_path, pdf_path,options=options, configuration=cfg)所需要⽤的附件程序:wkhtmltopdf.exe⼆、html⽹页⽂件转png#将HTML⽂件导出为图⽚def html_to_png(html_path,pdf_path='.\\pdf_new.pdf',html_encoding='UTF-8',path_wkpdf = r'.\Tools\wkhtmltoimage.exe'):'''将HTML⽂件导出为图⽚:param html_path:str类型,⽬标HTML⽂件的路径,可以是⼀个路径,也可以是多个路径,以list⽅式传⼊路径;或者⼀个或者多个⽹址;或者为⼀个字符串 :param pdf_path:str类型,需要导出的图⽚⽂件的路径:param html_encoding:str类型,html的编码格式,具体要看html页⾯到底是以什么编码格式保存的:param path_wkpdf:str类型,path_wkpdf = r'.\Tools\wwkhtmltoimage.exe' # ⼯具路径:return:'''cfg = imgkit.config(wkhtmltoimage=path_wkpdf)options = {"encoding": html_encoding # 这个具体要看html页⾯到底是以什么编码格式保存的}if 'http' in str(html_path) and ('html' not in str(html_path) or 'HTML' not in str(html_path)): #判断是否为⾮⽹址#从url获取html,再转为pdfprint('http=>png')# pdfkit.from_url('https:///ip', 'ip.png', options=options, configuration=cfg)# pdfkit.from_url(['https:///ip', 'https:///ip'], 'ip.png', options=options,configuration=cfg) # 传⼊列表imgkit.from_url(html_path, pdf_path, options=options, config=cfg)elif 'html' in str(html_path) or 'HTML' in str(html_path): #判断是否为HTML⽂件#将html⽂件转为pdfprint('html,str=>png')# pdfkit.from_file(r'./helloworld.html', 'helloworld.png',options=options, configuration=cfg)imgkit.from_file(html_path, pdf_path, options=options, config=cfg)elif isinstance(html_path, list) and ('html' in str(html_path) or 'HTML' in str(html_path)): #判断html⽬标是否为list,# 如:[r'./helloworld.html', r'./111.html', r'./222.html']print('html,list=>png')imgkit.from_file(html_path, pdf_path,options=options, config=cfg) # 传⼊列表else:#将字符串转为pdfprint('from_string=>png')imgkit.from_string(html_path, pdf_path,options=options, config=cfg)所需要⽤的附件程序:wkhtmltoimage.exe到此这篇关于Python实现⽹页⽂件转PDF⽂件和PNG图⽚的⽰例代码的⽂章就介绍到这了,更多相关Python⽹页⽂件转PDF PNG内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
html转换为pdf案例的一些总结(多图推荐)
html转换为pdf案例的⼀些总结(多图推荐)由于⼯作所需,最近花时间研究了html转换为pdf的功能。
html转换为pdf的关键技术是如何处理⽹页中复杂的css样式,通过在⽹上收集资料,发现⽬前html 转换为pdf的解决⽅案主要分为三类:客户端模式:前后台调⽤客户端程序,利⽤客户端程序的功能完成pdf⽂件转换。
本次测试⼯具有:wkhtmltopdf和PhantomJS。
java jar包解析类模式:java代码解析css样式,翻译html⽂件为pdf⽂件。
本次测试类有:IText,Flying Sauser,PD4ML。
js 前端解析模式:js前端解析html⽂件为pdf⽂件,本次测试案例有:html2canvas。
本次针对⽹上介绍的⽅案,结合实际项⽬的需求,做⼀⼀测试,在性能和功能⽅⾯做如下分析。
1.测试页⾯介绍通过查看各个转换案例在⽹上的介绍,简单的html样式,⼀般的表格样式在做pdf⽂件转换时,以上的⽅案均⽀持。
但考虑到实际业务的需要,本次测试特意⽤到了bootstrap (v 3.3.6)的css样式,同时页⾯也应⽤了css3的新特性。
基于这样的新特性编写⼀个静态的html页⾯,html页⾯在浏览器中的展⽰效果如下:2.wkhtmltopdf测试技术特点:Wkhtmltopdf可以直接把浏览器中浏览的⽹页转换成⼀个pdf,他是⼀个把html页⾯转换成pdf的软件(需要安装在服务器上)。
使⽤时可通过java代码调⽤cmd指令完成⽹页转换为pdf的功能。
功能测试:直接在cmd⾥输⼊测试指令,可查看处理进度。
第⼀个参数:wkhtmltopdf.exe所在的路径第⼆个参数:需要转换为pdf的html页⾯第三个参数:pdf⽂件路径及⽂件名页⾯导出效果如下:测试说明:通过测试发现,wkhtmltopdf对bootstap的CSS样式整体⽀持较好。
对css3的新特性如圆形图⽚样式⽀持⾏不好。
部分页⾯样式会失效。
JavaiText+FreeMarker生成PDF(HTML转PDF)
JavaiText+FreeMarker⽣成PDF(HTML转PDF)1.背景在某些业务场景中,需要提供相关的电⼦凭证,⽐如⽹银/⽀付宝中转账的电⼦回单,签约的电⼦合同等。
⽅便⽤户查看,下载,打印。
⽬前常⽤的解决⽅案是,把相关数据信息,⽣成对应的pdf⽂件返回给⽤户。
本⽂源码:2.iTextiText是著名的开放源码的站点sourceforge⼀个项⽬,是⽤于⽣成PDF⽂档的⼀个java类库。
通过iText不仅可以⽣成PDF或rtf的⽂档,⽽且可以将XML、Html⽂件转化为PDF⽂件。
iText 官⽹:iText 开发⽂档:iText⽬前有两套版本iText5和iText7。
iText5应该是⽹上⽤的⽐较多的⼀个版本。
iText5因为是很多开发者参与贡献代码,因此在⼀些规范和设计上存在不合理的地⽅。
iText7是后来官⽅针对iText5的重构,两个版本差别还是挺⼤的。
不过在实际使⽤中,⼀般⽤到的都⽐较简单,所以不⽤特别拘泥于使⽤哪个版本。
⽐如我们在中搜索iText,出来的都是iText5的依赖。
来个最简单的例⼦:添加依赖:<!-- https:///artifact/com.itextpdf/itextpdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.11</version></dependency>测试代码:JavaToPdfpackage com.lujianing.test;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Paragraph;import com.itextpdf.text.pdf.PdfWriter;import java.io.FileNotFoundException;import java.io.FileOutputStream;/*** Created by lujianing on 2017/5/7.*/public class JavaToPdf {private static final String DEST = "target/HelloWorld.pdf";public static void main(String[] args) throws FileNotFoundException, DocumentException {Document document = new Document();PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(DEST));document.open();document.add(new Paragraph("hello world"));document.close();writer.close();}}运⾏结果:3.iText-中⽂⽀持iText默认是不⽀持中⽂的,因此需要添加对应的中⽂字体,⽐如⿊体simhei.ttf可参考⽂档:测试代码:JavaToPdfCNpackage com.lujianing.test;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Font;import com.itextpdf.text.FontFactory;import com.itextpdf.text.Paragraph;import com.itextpdf.text.pdf.BaseFont;import com.itextpdf.text.pdf.PdfWriter;import java.io.FileNotFoundException;import java.io.FileOutputStream;/*** Created by lujianing on 2017/5/7.*/public class JavaToPdfCN {private static final String DEST = "target/HelloWorld_CN.pdf";private static final String FONT = "simhei.ttf";public static void main(String[] args) throws FileNotFoundException, DocumentException {Document document = new Document();PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(DEST));document.open();Font f1 = FontFactory.getFont(FONT, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); document.add(new Paragraph("hello world,我是鲁家宁", f1));document.close();writer.close();}}输出结果:4.iText-Html渲染在⼀些⽐较复杂的pdf布局中,我们可以通过html去⽣成pdf可参考⽂档:添加依赖:<!-- https:///artifact/com.itextpdf.tool/xmlworker --><dependency><groupId>com.itextpdf.tool</groupId><artifactId>xmlworker</artifactId><version>5.5.11</version></dependency>添加模板:template.html<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"/><title>Title</title><style>body{font-family:SimHei;}.red{color: red;}</style></head><body><div class="red">你好,鲁家宁</div></body></html>测试代码:JavaToPdfHtmlpackage com.lujianing.test;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.pdf.PdfWriter;import com.itextpdf.tool.xml.XMLWorkerFontProvider;import com.itextpdf.tool.xml.XMLWorkerHelper;import com.lujianing.test.util.PathUtil;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.nio.charset.Charset;/*** Created by lujianing on 2017/5/7.*/public class JavaToPdfHtml {private static final String DEST = "target/HelloWorld_CN_HTML.pdf";private static final String HTML = PathUtil.getCurrentPath()+"/template.html";private static final String FONT = "simhei.ttf";public static void main(String[] args) throws IOException, DocumentException {// step 1Document document = new Document();// step 2PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(DEST));// step 3document.open();// step 4XMLWorkerFontProvider fontImp = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS); fontImp.register(FONT);XMLWorkerHelper.getInstance().parseXHtml(writer, document,new FileInputStream(HTML), null, Charset.forName("UTF-8"), fontImp);// step 5document.close();}}输出结果:需要注意:1.html中必须使⽤标准的语法,标签⼀定需要闭合2.html中如果有中⽂,需要在样式中添加对应字体的样式5.iText-Html-Freemarker渲染在实际使⽤中,html内容都是动态渲染的,因此我们需要加⼊模板引擎⽀持,可以使⽤FreeMarker/Velocity,这⾥使⽤FreeMarker举例添加FreeMarke依赖:<!-- https:///artifact/org.freemarker/freemarker --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.19</version></dependency>添加模板:template_freemarker.html<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"/><title>Title</title><style>body{font-family:SimHei;}.blue{color: blue;}</style></head><body><div class="blue">你好,${name}</div></body></html>测试代码:JavaToPdfHtmlFreeMarkerpackage com.lujianing.test;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.pdf.PdfWriter;import com.itextpdf.tool.xml.XMLWorkerFontProvider;import com.itextpdf.tool.xml.XMLWorkerHelper;import com.lujianing.test.util.PathUtil;import freemarker.template.Configuration;import freemarker.template.Template;import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.StringWriter;import java.io.Writer;import java.nio.charset.Charset;import java.util.HashMap;import java.util.Map;/*** Created by lujianing on 2017/5/7.*/public class JavaToPdfHtmlFreeMarker {private static final String DEST = "target/HelloWorld_CN_HTML_FREEMARKER.pdf";private static final String HTML = "template_freemarker.html";private static final String FONT = "simhei.ttf";private static Configuration freemarkerCfg = null;static {freemarkerCfg =new Configuration();//freemarker的模板⽬录try {freemarkerCfg.setDirectoryForTemplateLoading(new File(PathUtil.getCurrentPath()));} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) throws IOException, DocumentException {Map<String,Object> data = new HashMap();data.put("name","鲁家宁");String content = JavaToPdfHtmlFreeMarker.freeMarkerRender(data,HTML);JavaToPdfHtmlFreeMarker.createPdf(content,DEST);}public static void createPdf(String content,String dest) throws IOException, DocumentException {// step 1Document document = new Document();// step 2PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));// step 3document.open();// step 4XMLWorkerFontProvider fontImp = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS); fontImp.register(FONT);XMLWorkerHelper.getInstance().parseXHtml(writer, document,new ByteArrayInputStream(content.getBytes()), null, Charset.forName("UTF-8"), fontImp);// step 5document.close();}/*** freemarker渲染html*/public static String freeMarkerRender(Map<String, Object> data, String htmlTmp) {Writer out = new StringWriter();try {// 获取模板,并设置编码⽅式Template template = freemarkerCfg.getTemplate(htmlTmp);template.setEncoding("UTF-8");// 合并数据模型与模板template.process(data, out); //将合并后的数据和模板写⼊到流中,这⾥使⽤的字符流out.flush();return out.toString();} catch (Exception e) {e.printStackTrace();} finally {try {out.close();} catch (IOException ex) {ex.printStackTrace();}}return null;}}输出结果:⽬前为⽌,我们已经实现了iText通过Html模板⽣成Pdf的功能,但是实际应⽤中,我们发现iText并不能对⾼级的CSS样式进⾏解析,⽐如CSS中的position属性等,因此我们要引⼊新的组件若中⽂变量还是不显⽰,则在pom.xml⾥添加如下:<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <!--增加的配置,过滤ttf⽂件的匹配--> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.7</version> <configuration> <encoding>UTF-8</encoding> <nonFilteredFileExtensions> <nonFilteredFileExtension>ttf</nonFilteredFileExtension> </nonFilteredFileExtensions> </configuration> </plugin> </plugins></build>备注:⼯具类的⽅法PathUtil.getCurrentPath() = "src/main/resources/",(这个对新⼿有⽤)6.Flying Saucer-CSS⾼级特性⽀持Flying Saucer is a pure-Java library for rendering arbitrary well-formed XML (or XHTML) using CSS 2.1 for layout and formatting, output to Swing panels, PDF, and images.Flying Saucer是基于iText的,⽀持对CSS⾼级特性的解析。
Java将Html转为PDF(二)
Java将Html转为PDF(⼆)前⾯介绍了如何,该⽅法需要使⽤Spire.PDF for Java 3.6.6或者之后的新版本,可根据⾃⼰的系统选择不同插件来实现转换。
本⽂提供另外⼀种转换⽅法,需要使⽤Spire.Doc for Java 3.9.4或者之后的新版本。
关于Jar包下载及导⼊⽅法1:。
解压,找到lib⽂件夹的Spire.Doc.jar⽂件,并在Java程序中导⼊jar⽂件⽅法2:在Maven程序中配置Pom.xml⽂件,如下(需要指定Maven仓库路径以及Spire.Doc的依赖):<repositories><repository><id>com.e-iceblue</id><url>/repository/maven-public/</url></repository></repositories><dependencies><dependency><groupId> e-iceblue </groupId><artifactId>spire.doc</artifactId><version>3.9.4</version></dependency></dependencies>完成配置后,导⼊jar。
详细步骤可参考官⽅⽂档。
Html转PDF⽅法转换时可以将Html String或者Html file转为PDF,参见以下代码⽅法:1. 将Html String转为PDF创建Word⽂档,将Html String添加到Word段落,通过saveToFile()保存为PDF⽂档。
import com.spire.doc.*;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class HtmlToPDF1 {public static void main(String[] args) throws IOException{String inputHtml = "InputHtml.txt";//新建Document对象Document doc = new Document();//添加sectionSection sec = doc.addSection();String htmlText = readTextFromFile(inputHtml);//添加段落并写⼊HTML⽂本sec.addParagraph().appendHTML(htmlText);//将⽂档另存为PDFdoc.saveToFile("HTMLstringToPDF.pdf", FileFormat.PDF);doc.dispose();}public static String readTextFromFile(String fileName) throws IOException {StringBuffer sb = new StringBuffer();BufferedReader br = new BufferedReader(new FileReader(fileName));String content;while ((content = br.readLine()) != null) {sb.append(content);}return sb.toString();}}2. 将Html file转为PDF加载Html⽂件,通过saveToFile()⽅法直接保存为PDF。
利用Aspose.Words将html转成pdf和将html转成word
利⽤Aspose.Words将html转成pdf和将html转成word html转成word///<summary>/// html转word⽂件需要先创建⼀个模板word,再指定新的word⽂件的地址///</summary>///<param name="templatePath">加密采⽤的编码⽅式</param>///<param name="newFilePath">加密采⽤的编码⽅式</param>///<param name="html">待加密的明⽂</param>///<returns></returns>public static void HtmlToWord(string templatePath, string newFilePath, string html){//加载word模板。
Aspose.Words.Document doc = new Aspose.Words.Document(string.Format(@"{0}", templatePath));Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);builder.InsertHtml(html);doc.Save(newFilePath, Aspose.Words.SaveFormat.Doc);}html转成pdf///<summary>/// html转pdf///</summary>///<param name="path"></param>///<param name="newFilePath">加密采⽤的编码⽅式</param>///<returns></returns>public static void HtmlToPdf(string path, string newFilePath){var dir = newFilePath.Substring(0, stIndexOf("/") + 1);if (!Directory.Exists(dir)){Directory.CreateDirectory(dir);}Aspose.Words.Document doc = new Aspose.Words.Document(path);doc.Save(newFilePath);}html⽂本转成pdfvar bytes = System.Text.Encoding.UTF8.GetBytes("<html><body><div>哈哈哈哈哈</div></body></html");Stream s = new MemoryStream(bytes);Aspose.Words.Document dc = new Aspose.Words.Document(s);dc.Save(@"d:\\directory.pdf");。
freemarker html转pdf 循环表格
freemarker html转pdf 循环表格FreeMarker 是一个用于生成文本输出(例如HTML、XML、JSON 等)的模板引擎。
要将HTML 转换为PDF 并在其中包含循环表格,你可以使用FreeMarker 生成HTML 模板,然后使用PDF 生成库(例如iText、Apache PDFBox)将其转换为PDF。
下面是一个简单的示例,演示了如何使用FreeMarker 和iText 创建一个包含循环表格的HTML 模板并将其转换为PDF:1. 导入依赖库:请确保你的项目中包含FreeMarker 和iText 的依赖库。
```xml<!-- FreeMarker --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.31</version></dependency><!-- iText --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency>```2. 创建FreeMarker 模板文件(template.ftl):```html<!DOCTYPE html><html><head><title>PDF Generation with FreeMarker</title></head><body><h1>Table Example</h1><table border="1"><thead><tr><th>Header 1</th><th>Header 2</th><th>Header 3</th></tr></thead><tbody><#list data as row><tr><td>${row.column1}</td><td>${row.column2}</td><td>${row.column3}</td></tr></#list></tbody></table></body></html>```3. 创建Java 代码:```javaimport freemarker.template.Configuration;import freemarker.template.Template;import freemarker.template.TemplateException;import java.io.*;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.pdf.PdfWriter;public class HtmlToPdf {public static void main(String[] args) {try {// Load FreeMarker configurationConfiguration cfg = new Configuration(Configuration.VERSION_2_3_31);cfg.setClassForTemplateLoading(HtmlToPdf.class, "/"); // Set the template file path// Load the FreeMarker templateTemplate template = cfg.getTemplate("template.ftl");// Create data for the templateList<Map<String, String>> data = new ArrayList<>();Map<String, String> row1 = new HashMap<>();row1.put("column1", "Value 1-1");row1.put("column2", "Value 1-2");row1.put("column3", "Value 1-3");data.add(row1);Map<String, String> row2 = new HashMap<>();row2.put("column1", "Value 2-1");row2.put("column2", "Value 2-2");row2.put("column3", "Value 2-3");data.add(row2);// Create a PDF documentDocument document = new Document();PdfWriter.getInstance(document, new FileOutputStream("output.pdf"));document.open();// Process the FreeMarker template and write HTML content to the PDF documentStringWriter stringWriter = new StringWriter();template.process(createDataModel(data), stringWriter);document.add(newcom.itextpdf.text.html.simpleparser.HTMLWorker(document).parse(newStringReader(stringWriter.toString())));// Close the documentdocument.close();System.out.println("PDF generated successfully.");} catch (IOException | DocumentException | TemplateException e) {e.printStackTrace();}}private static Map<String, Object> createDataModel(List<Map<String, String>> data) { Map<String, Object> root = new HashMap<>();root.put("data", data);return root;}}```这个例子中,`template.ftl` 文件包含了一个简单的HTML模板,其中包含一个表格,通过FreeMarker 的`#list` 指令循环输出数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我们在进行HTML代码编程的时候,会去查看相关的文件或是网站后台的代码进行参考,那么对于PDF文件要怎么查看它的代码——PDF 转HTML
文件的代码不像是网站代码,网站想要查看代码,可以直接查看代码源就可以了
想要查看PDF文件的HTML代码,那么就需要将PDF文件的格式进行转换,将CSS的代码单独提取出来,那么就需第三方软件——迅捷caj 转换器进行转换操作
由于需要对PDF文件进行代码查看,所以我们打开一个编辑好的PDF 文件
然后打开迅捷caj转换器,寻找到有关PDF文件的转换选项,然后点击“PDF转HTML”
之后将PDF文件上传到HTML的文件转换的页面中
如果你没有什么特殊的需求,那么就可以直接点击上传文件下方的“开始转换”进行PDF文件转换
如果是对转文件有需求,可以在下面的“页码选择”中进行选择操作
转换后的HTML文件是一个压缩包,我们进行解压后可以看到CSS文件就在其中,可以点击右键直接在TXT文件中进行查看。