pdfFactory Pro(虚拟打印机)是一个无须 Acrobat 创建 Adobe PDF 文件的打印机驱动程序。pdfFactory Pro(虚拟打印机)提供的创建 PDF 文件的方法比其他方法更方便和高效。 功能包括: 多个文档整合到一个 PDF 文件中内嵌字体通过 E-mail 发送预览自动压缩优化。圆配
PDF Factory是pdf虚拟打印机软件,下载安装好PDF Factory后,我们在打印机控制面板中就可以找到一台由pdf Factory虚拟出来的打印机,可以把任何可以打印的文件转换成pdf文件。用任何可以支持打印输出的软件,把需要处理的文件逐个打印到这个虚拟打印机,全部打印完成后可把结果保存成一个pdf文件。甚至可以把不同软件格式的文件,如word、excel、photoshop等任何可以支持打印的文件,打印到同一个pdf文件。
在打印之前,在PDF Factory Pro里面设置一下PDF的打开、打印等权限即可实现加密等目的;
在打印之前,在设置里面,就把加载所有的系统字体选中。
在打印界面出来后,可以在左侧设置水印。然后再保存PDF文件。
打印完毕后,下载一个Adobe Reader,然后安装,可以很流畅的阅读PDF文件。敏腔
1. 装acrobat专斗改业版,然后打开图片,送Adobe PDF打印机,可以保存成空前判PDF文件。2. 找一个支持PDF文件格悔衡式的第三方控件,因为PDF文件格式是专有的。
先在服务器上生成PDF文件,然后用户通过点击指向PDF文件的超链接选择下载或打开。这是一个思路,或者说是思路之一。本文实现了这个思路,又给出另外一个思路并通过两种途径实现之。1)直接在服务器上生成PDF文件。
<%@ page import ="com.lowagie.text.*
,com.lowagie.text.pdf.*, java.io.*"%>
<%
String filename =
"PDF"+(new Random()).nextInt()+".pdf"
Document document =
new Document(PageSize.A4)
ServletOutputStream out1
= response.getOutputStream()
try{
PdfWriter writer =
PdfWriter.getInstance(document,
new FileOutputStream(filename) )
document.open()
document.add(new Paragraph("Hello World"))
document.close()
}
catch(Exception e){}
%>
上面的程早和序在服务器上生成了一个静态的PDF文件。显然,每次运行所得的PDF文件的名高芦称应该是独一无二不能有重的。本程序通过随机函数来命名生成的PDF文件。本程序的缺点就是,每次运行都会在服务器上产生一个PDF文件,如果不及时删除,数量戚睁带会越来越大,这显然是站点维护者所不愿意看到的。
2)将PDF文件通过流的形式输送到客户端的缓存。这样做的好处是不会在服务器上留下任何“遗迹”。
i)直接通过JSP页面生成
<%@
page import="java.io.*,
java.awt.Color,com.lowagie.text.*,
com.lowagie.text.pdf.*"%>
<%
response.setContentType
( "application/pdf" )
Document document = new Document()
ByteArrayOutputStream buffer
= new ByteArrayOutputStream()
PdfWriter writer=
PdfWriter.getInstance( document, buffer )
document.open()
document.add(new Paragraph("Hello World"))
document.close()
DataOutput output =
new DataOutputStream
( response.getOutputStream() )
byte[] bytes = buffer.toByteArray()
response.setContentLength(bytes.length)
for( int i = 0
i <bytes.length
i++ )
{
output.writeByte( bytes[i] )
}
%>
ii)通过Servlet生成
import java.io.*
import javax.servlet.*
import javax.servlet.http.*
import com.lowagie.text.*
import com.lowagie.text.pdf.*
public void doGet
(HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
{
Document document =
new Document(PageSize.A4, 36,36,36,36)
ByteArrayOutputStream ba
= new ByteArrayOutputStream()
try
{
PdfWriter writer =
PdfWriter.getInstance(document, ba)
document.open()
document.add(new
Paragraph("Hello World"))
}
catch(DocumentException de)
{
de.printStackTrace()
System.err.println
("A Document error:" +de.getMessage())
}
document.close()
response.setContentType
("application/pdf")
response.setContentLength(ba.size())
ServletOutputStream out
= response.getOutputStream()
ba.writeTo(out)
out.flush()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)