打印功能

1.首先做好一个模板,想打印图片的话下载一个图片模板,打印表格的话直接建一个表格。然后在word里面打开。保存为PDF格式,然后下载Adobe Acrobat DC,没有的话在我的第一个链接可以直接下载。

2下载以后把PDF打开,点击准备表单。如果是表格的话,在空的表格里面会自动生成打印是要加入数据的框;图片只会生成一个,可以复制粘贴。框可以自己移动、调大小。

(注意:如上方法里面插入字段是按照图片上由上到下、从左至右的顺序插入的)

3.输入框做好了直接保存就好了。

4.打印方法:第一段绿色是把保存的PDF模板URL放入,和你要下载PDF放的URL,我的url是用的动态的,放在服务器文件下。你也可以固定路径保存,第二个绿色字段也是自己加的,自己想放什么把什么字段传过来就好了。其他的复制就好了。

@RequestMapping(value = "/export")
public Map<String,Object> printinvoice() throws Exception{

//生成pdf文件程序

String templatePath = "F:/model4.pdf";
// 生成的新文件路径
String url = request.getSession().
getServletContext().getRealPath("/")+"uploadFile\\"+dutyparagraph+".pdf";
PdfReader reader;
FileOutputStream out;
ByteArrayOutputStream bos;
PdfStamper stamper;
try {
out = new FileOutputStream(url);// 输出流
reader = new PdfReader(templatePath);// 读取pdf模板
bos = new ByteArrayOutputStream();
stamper = new PdfStamper(reader, bos);
AcroFields form = stamper.getAcroFields();
String[] str = {putCompanyname, dutyparagraph,priceall, depositbank,bankaccount, Companyname };
int i = 0;
java.util.Iterator<String> it = form.getFields().keySet().iterator();
while (it.hasNext()) {
String name = it.next().toString();
form.setField(name, str[i++]);
}
stamper.setFormFlattening(true);// 如果为false那么生成的PDF文件还能编辑,一定要设为true
stamper.close();

Document doc = new Document();
PdfCopy copy = new PdfCopy(doc, out);
doc.open();
PdfImportedPage importPage = copy.getImportedPage(new PdfReader(bos.toByteArray()), 1);
copy.addPage(importPage);
doc.close();

} catch (IOException e) {
System.out.println(1);
} catch (DocumentException e) {
System.out.println(2);
}

return null;

}

5.执行完上面的程序就把你所要打印的pdf文件生成了。

6.预览功能:在前台页面展示所保存的pdf文件,

1.需要下载pdfobject.js插件。功能很是强大。在我的第二个链接里面。有两个.js。随便下载一个。其他两个架包是生成二维码的架包,有兴趣可以看下,生成二维码博客也有发。

2.jsp

一个div就搞定了。路径是保存PDF的路径,"#pdf"是id选择器。

执行了方法就直接跳到pdf显示页面了。

我做的是打印发票的,黑色字段是我添加的。显示的PDF就有打印和下载的功能,还可以放大和缩小,还有适应屏幕。功能强大的一匹。

3. 打印数据的话直接前台加如下这句话就可以直接打印当前页面的数据了;

<a href="javascript:print();">打印</a>

7.下载功能

1.把生成pdf文件的下载路径传到下载方法就好了。

@ResponseBody
@RequestMapping(value = "/download")
public String download(@RequestParam String companyname,String url, HttpServletResponse response, HttpServletRequest request) throws Exception{
System.out.println("==========================");
System.out.println("开始下载");
InputStream in = null ;
OutputStream out = null ;
try
{
System.out.println("============================");
System.out.println("全局路径:"+url);
in = new FileInputStream(url); //获取文件的流
System.out.println("============================");
System.out.println("文件输入流:"+in);
int len = 0;
byte buf[] = new byte[1024];//缓存作用
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(companyname + ".pdf", "UTF-8"));
out = response.getOutputStream();//输出流
while( (len = in.read(buf)) > 0 ) //切忌这后面不能加 分号 ”;“
{
out.write(buf, 0, len);//向客户端输出,实际是把数据存放在response中,然后web服务器再去response中读取
}

in.close();
out.close();

}finally{
//TODO
}
return null;

over!!!!!!!!

链接

1.链接:http://pan.baidu.com/s/1pKLFYeJ 密码:368z

2.链接:http://pan.baidu.com/s/1dE4zvfN 密码:vntc

时间: 2024-11-08 21:23:55

打印功能的相关文章

测试打印功能

// 先创建窗体,后拉入Button控件两个,一个预览功能,一个打印功能,再拉入控件PrintDocument控件.PrintPreviewDilogs控件.pageSetupDilogs控件 // 后台代码 1 List<string> students = new List<string>() {"张三","李四","王五" }; 2 int count = 0;//要打印的学员姓名的下标值 3 private voi

借助Jquery Jqprint实现网页打印功能

今天利用闲余时间研究了一下Jquery Jqprint插件,使用该Jquery脚本可以轻而易举的实现打印网页指定区域内容的功能: 例子一: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&

添加条码生成和打印功能到SQL Server Reporting Services report 中

Barcode Professional for Reporting Services 是一款灵活和强大的.NET组件(.NET DLL 类库),它让您轻松地添加条码生成和打印功能到您的SQL Server Reporting Services report 中.支持几乎所有当前常用的条码:Code 39, Code 128, GS1-128, GS1 DataBar (RSS-14), EAN 13 & UPC, Postal (USPS, British Royal Mail, Austra

vc 实现打印功能

Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这个问题很复杂,不知道如何下手.本例针对这个问题,介绍一种简单的方法实现文字串的打印功能,读者朋友可以在此基础上稍微改动一下,就可以实现文件.图像的打印功能. 一.实现方法 在Windows操作系统下,显示器.打印机和绘图仪都被视为输出设备,正常情况下,系统默认的输出设备是显示器.要使用打印机,首先需

浅谈QT打印功能实现

QT作为一款轻量级的集成开发环境,其设计的目标是使开发人员利用QT这个应用程序框架更加快速及轻易的开发应用程序.要达到此目的,要求QT必须能够跨平台,QT能够在32位及64位的Linux,MAC OS X以及Windows上运行. 现在我们想在项目中加入一项打印功能,即使在不同的操作系统环境下,仍然能有相同的用户体验,在实现中发现QT对打印的支持不是那么友好.我们希望在跨平台的情况下,能打印各种文档,比如用户的简历,发现如果不调用对应操作系统的内核外壳打印函数,这项工作变得异常艰难.我们希望用Q

Atitit.收银机小票打印功能的设计&#160;&#160;java&#160;php&#160;c#.net版本

Atitit.收银机小票打印功能的设计  java php c#.net版本 1. 1. 打印方式有4种:1 1.1. 1.1. 一是不经过任何修改,直接调用javascript中的window.print()打印.1 1.2. 1.2. 二根据客户要求的报表格式,编写相应格式的html,装载数据打印,同样调用window.print()打印,只是对html的格式要求比较高.1 1.3. 1.3. 三是通过客户提供的word格式,通过xml配置文件与数据库的数据进行关联,自动装载数据到word中

IE下实现打印功能

先贴代码: <html> <head> <style type="text/css"> *{margin:0px;padding:0px;} .noprint{margin:20px 0px;} .noprint input{padding:5px 10px;margin:10px 5px;} #p{display:none;} </style> <!--该样式表设置的是打印时的样式,要放到其他style的下面,否则会被覆盖--&g

C#程序调用CodeSoft预先设计好的标签模块实现打印功能

if (this.tbSetLabel.Text.Trim() == "") { MessageBox.Show("请先 Enter 选择标签模板文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); this.tbSetLabel.Focus(); return; } int VarTag = 0; if (tbVar0.Text.Trim() != "") { Va

web打印功能

1.http://www.jb51.net/article/38083.htm 2. <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>    </head><body>    <form id="form1" runat="server&quo

js 实现打印功能

前端js实现打印功能的两种方式: 1.利用iframe,隐藏iframe,直接通过按钮直接打印,弹出打印设置页面. <button onclick="doPrint();">print</button> <iframe style="display:none" id="printIframe" frameBorder=0 scrolling=no width="100%" src="./