`
daoger
  • 浏览: 531694 次
  • 性别: Icon_minigender_1
  • 来自: 山东济南
社区版块
存档分类
最新评论

WEB Page to PDF

阅读更多

现在有很多网页页面转换成PDF文档的支持项目,我使用的是pd4ml;一个支持.net和java语言的项目。

这是主页:http://pd4ml.com/ . 有免费版和收费版,看了看免费版,感觉还不错,文档也比较详细。

web应用中需要添加pd4ml.jar和ss_css2,jar;

贴个例子:

ServletContext app;

	protected Dimension format = PD4Constants.A4;

	protected boolean landscapeValue = false;

	protected int topValue = 10;

	protected int leftValue = 10;

	protected int rightValue = 10;

	protected int bottomValue = 10;

	protected String unitsValue = "mm";

	protected String proxyHost = "";

	protected int proxyPort = 0;

	protected int userSpaceWidth = 780;


public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		String httpurl = request.getParameter("httpurl");
		// String urlstring = "http://localhost:8080/Itinerary/ProcessPOIs.jsp";
		ItineraryWebSession iws = (ItineraryWebSession) request.getSession().getAttribute("iws");
		if (iws != null && request.getSession().getAttribute("email") != null)
		{
			String email = (String) request.getSession().getAttribute("email");
			app.setAttribute("iws_" + email, iws);
			httpurl = httpurl + "?pdf=true&email=" + email;
			// request.getSession().setAttribute("iws", iws);
		}
		try
		{
			response.reset();
			response.addHeader("Content-Disposition", "attachment;filename=" + new String("result".getBytes(), "8859_1"));
			// response.addHeader("Content-Length", "" + file.length());
			BufferedOutputStream output = null;
			try
			{
				output = new BufferedOutputStream(response.getOutputStream());
				this.runConverter(httpurl, output);
				response.flushBuffer();
			} catch (Exception e)
			{
				e.printStackTrace();
			} finally
			{
				if (output != null)
					output.close();
			}
		} catch (Exception e)
		{
			e.printStackTrace();
			// TODO: handle exception
		}
	}
public void runConverter(String urlstring, BufferedOutputStream output) throws IOException
	{
		if (urlstring.length() > 0)
		{
			if (!urlstring.startsWith("http://") && !urlstring.startsWith("file:"))
			{
				urlstring = "http://" + urlstring;
			}
			if (proxyHost != null && proxyHost.length() != 0 && proxyPort != 0)
			{
				System.getProperties().setProperty("proxySet", "true");
				System.getProperties().setProperty("proxyHost", proxyHost);
				System.getProperties().setProperty("proxyPort", "" + proxyPort);
			}
			PD4ML pd4ml = new PD4ML();
			try
			{
				pd4ml.setPageSize(landscapeValue ? pd4ml.changePageOrientation(format) : format);

			} catch (Exception e)
			{
				e.printStackTrace();
			}
			if (unitsValue.equals("mm"))
			{
				pd4ml.setPageInsetsMM(new Insets(topValue, leftValue, bottomValue, rightValue));
			} else
			{
				pd4ml.setPageInsets(new Insets(topValue, leftValue, bottomValue, rightValue));
			}
			pd4ml.setHtmlWidth(userSpaceWidth);
			pd4ml.render(urlstring, output);
		}
	}

 我在一个servlet中使用的时候,通过url新建的访问链接,发现session无法和浏览器中的共享,无奈把一部分数据放到了application中,访问完了之后再删掉。 当然,这只是pd4ml的应用方式之一,感兴趣的朋友可以深入研究一下。

 

 

3
0
分享到:
评论
5 楼 手心手背 2011-01-11  
楼主中文乱码怎么解决啊!不胜感激!
4 楼 zdtwyjp 2010-07-19  
你好呀!这两天在弄一个html转pdf的功能!头都弄晕了,试了好多插件都不行!
itext只能显示一种字符格式;
flying sauser纠错能力太差了,很多网页上的标签它不认识,显示不出来;
今天在网上搜到了PD4ML感觉还不错,比较合我的心意,不过还是有一个比较大的问题,哪就是如何处理中文问题?

LZ能否将处理中文的代码贴出来呀!

不胜感激呀!
3 楼 cris_jxg 2009-08-21  
谢谢,编码现在正确了
这个还是很不错的,只可惜不开源
2 楼 daoger 2009-08-11  
cris_jxg 写道
楼主中文怎么处理的,怎么发现中文乱码?

自己进行以下编码转化试试!
1 楼 cris_jxg 2009-08-11  
楼主中文怎么处理的,怎么发现中文乱码?

相关推荐

    HtmlToPdf、wkhtmltopdf工具

    `HtmlToPdf` 和 `wkhtmltopdf` 在现代Web开发中扮演着重要角色,它们帮助开发者实现了离线阅读、报告生成、电子发票制作等功能。结合C#的强类型和面向对象特性,可以构建出高效稳定的PDF生成系统。通过深入理解和...

    Java web使用pdf.js在线预览远程服务器上的pdf文件

    "Java Web使用pdf.js在线预览远程服务器上的pdf文件"这个主题涵盖了如何利用pdf.js库实现在Web环境中流畅、安全地预览PDF文档。pdf.js是Mozilla开发的一个开源项目,它允许开发者在浏览器端直接渲染PDF内容,无需...

    CSS Web Design For Dummies.pdf

    Cascading Style Sheets (CSS) is a Web markup standard that allows Web designers to define the appearance and position of a Web page using special dynamic effects This book is the perfect beginner ...

    前端web页面支持在线显示PDF文件的组件

    PDFJS.getDocument('path/to/your/pdf').promise.then(function(pdf) { pdf.getPage(1).then(function(page) { var scale = 1; var viewport = page.getViewport({scale: scale}); // 创建canvas元素并设置尺寸...

    web 在线浏览PDF文件

    Web在线浏览PDF文件是一种常见的需求,特别是在文档分享和协作的场景中。JavaScript库如pdf.js是实现这一功能的重要工具。本文将深入探讨如何利用pdf.js实现在网页中安全地在线浏览PDF文件,以及相关的技术要点。 ...

    web网页保存为PDF文件

    你可以通过Puppeteer加载一个网页,然后调用`page.pdf()`方法来生成PDF。这个方法允许设置各种选项,比如页面大小、边距、布局等,以满足定制化需求。 html2pdf.js则是一个纯JavaScript的解决方案,它依赖于...

    web前端 ,pdf格式文档在线预览

    在现代的Web应用中,提供PDF格式文档的在线预览功能是相当常见的需求。这不仅提高了用户体验,使得用户无需下载文件就能查看内容,而且对于跨平台和移动设备访问也更加友好。本文将深入探讨如何实现"web前端,PDF...

    Learning Web Design: A Beginner’s Guide to HTML... ..., 5th Edition

    Learn the ins and outs of Responsive Web Design to make web pages look great on all devices NEW! Become familiar with the command line, Git, and other tools in the modern web developer’s toolkit NEW...

    Beginning JSP JSF and Tomcat Web Development From Novice to Professional.pdf

    《 Beginning JSP JSF and Tomcat Web Development From Novice to Professional》是一本旨在引导初学者到专业人士的JSP、JSF(JavaServer Faces)和Tomcat Web开发的指南。这本书涵盖了从基础到高级的Web开发技术,...

    用PageOffice实现批量转换导出Word文档.pdf

    PageOffice是一款强大的在线编辑Office文档的组件,它提供了方便的API和控件,使得在Web应用中处理Office文档变得简单。 1. **PageOffice服务器端安装与配置** 在使用PageOffice之前,首先需要在服务器端安装Page...

    web浏览器在线阅读pdf文件js包

    PDFObject 是一个轻量级的JavaScript库,专门用于在Web浏览器中嵌入PDF文件,使得用户可以在不离开当前页面的情况下在线阅读PDF文档。这个库的主要优势在于其简单易用和良好的浏览器兼容性,尽管在一些老旧版本的IE...

    Angular 5 Projects Learn to Build Single Page Web Applications Using 无水印原版pdf

    Angular 5 Projects Learn to Build Single Page Web Applications Using 70+ Projects 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自...

    programming_the_semantic_web.pdf

    Data Integration Across the Web 4 Traditional Data-Modeling Methods 5 Tabular Data 6 Relational Data 7 Evolving and Refactoring Schemas 9 Very Complicated Schemas 11 Getting It Right the First Time 12...

    pdfview打开pdf文件,避免android无法通过webview打开pdf文件

    如果你的项目不使用Gradle构建,你需要手动将`android-pdfview`库中的jar文件(通常为`pdfview.jar`)添加到项目的`libs`目录,并在Eclipse中右键点击该jar,选择"Build Path" > "Add to Build Path"。 接下来,...

    pdf.js前端插件,用于在线预览pdf文件

    PDF.js是Mozilla开发的一款开源JavaScript库,专门用于在Web浏览器中渲染PDF文档。这个插件使得用户无需安装任何桌面软件就能在线预览PDF文件,极大地提升了网页应用的用户体验。下面我们将详细探讨PDF.js的核心功能...

    Web Components in Action

    A Web Component is well-encapsulated, keeping its internal structure separate from other page elements so they don't collide with the rest of your code. In Web Components in Action you'll learn to ...

    htmltopdf.rar

    在HTML到PDF的转换过程中,QT扮演了重要的角色,特别是在"htmltopdf.rar"这个压缩包中,它提供了一个解决方案来将HTML文档转换为便携式文档格式(PDF)。这种转换功能对于那些希望在各种设备上保持一致显示效果,...

    pdf.js&pdf;.worker.js

    PDFJS.getDocument('path_to_your_pdf_file').then(function(pdf) { pdf.getPage(1).then(function(page) { var scale = 1; var viewport = page.getViewport({scale: scale}); var canvas = document....

    java集成pdf.js 在线阅览pdf文件

    Java集成PDF.js在线浏览PDF文件是一项常见的技术需求,特别是在开发Web应用时,用户可能需要在浏览器内查看PDF文档。PDF.js是由Mozilla维护的一个开源库,它允许开发者在浏览器环境中渲染高质量的PDF内容,无需依赖...

Global site tag (gtag.js) - Google Analytics