添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
我需要用Flying Sauser 生成一个由html生成的PDF文件,由于我的html中的图片比较宽,导致我生成的PDF文件中的图片右半边显示不了,不知道如何设置可以生成一个横向页面的PDF文件。
我的代码如下:
package com;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;
import com.lowagie.text.pdf.BaseFont;

public class IText {

public static void main(String[] args)throws Exception {
String path =System.getProperty("user.dir")+"/src/";
String inputFile = path + "3.html";
String url = new File(inputFile).toURI().toURL().toString();
String outputFile = path + "1.pdf";
OutputStream os =new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();

renderer.setDocument(url);
ITextFontResolver fontResolver = renderer.getFontResolver();

fontResolver.addFont( path + "simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

renderer.layout();
renderer.createPDF(os);
System.out.println("转换成功!");
os.close();

}
}

我也遇到这个问题,我的是把一个A4纸横向显示。楼上的答案基本上是正确的,就是在html的style里面加入pdf能识别的样式,@page{}这个就是与其他样式区别开来的标志,例如这里面写@page{size:297mm 210mm;}这个就表示纸张的宽是297毫米,高是210毫米,这样打印出来的效果就跟横着的A4纸一样了。如果还需要一些页眉页脚之类的可以参考官方的文档,我也是搜资料没搜到,硬着头皮开始看文档,看例子的,http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html#the-problem-with-pdfs,如果想要加密,可以直接设置
PDFEncryption pdfEncryption = new PDFEncryption(null,null,PdfWriter.ALLOW_PRINTING);
renderer.setPDFEncryption(pdfEncryption);这个是只有打印权限的,相关参数可以查看文档,第一个是使用者密码,第二个是自己的密码(类似管理员),第三个权限。

2012年11月02日 15:03
爱上一只狐 Systems thinking :coping with 21st century problems - John Boardman, Brian Sauser 英文版 超清晰

书名:Systems thinking :coping with 21st century problems /John Boardman, Brian Sauser. ISBN:9781420054910(alk.paper) 作者:Boardman John 1946-. 出版社:Boca Raton, FL :CRC Press,c2008.