精华内容
下载资源
问答
  • pdf合并打印

    2015-08-27 08:49:58
    pdf合并打印、pdf转图片,word2pdf 基于pdfbox的二次开发,实现将多个pdf文件合并成一个pdf,word转换成pdf,pdf转化成图片,pdf文件的后台打印,相当于虚拟打印机
  • 有时候我们打印pdf时需要生成多个pdf文件,最后合成一个新的pdf来打印,我们又嫌这么多pdf占内存所以合并后把之前的pdf删除掉。 /** * 打印出库单(导出pdf文件) *  * @throws IOException * @method: ...

    有时候我们打印pdf时需要生成多个pdf文件,最后合成一个新的pdf来打印,我们又嫌这么多pdf占内存所以合并后把之前的pdf删除掉。

    /**
    * 打印出库单(导出pdf文件)

    * @throws IOException
    * @method: printChuku() 
    * @TODO: void
    */
    public void printChuku() {
    try {
    //刊的状态 0常用,1不常用
    Integer pub_state = getParaToInt("pub_state", 0);
    String start = getPara("start");
    String end = getPara("end");
    //查询每期的每版的某个客户数量之和
    String sql = "SELECT SUM(o.total_number) number,SUM(o.sub_number)  suber,"
    + "SUM(o.free_number) freenum, o.*,c.*,ou.*,u.user_xingming FROM ordertable o LEFT JOIN customers c ON o.cus_id=c.cus_id "
    + "LEFT JOIN USER u ON o.user_id=u.user_id left join outbound ou on o.out_id=ou.out_id "
    + " where o.ord_status=2 and o.out_id IS NOT NULL";
    //查询业务员和客户
    String sql1 = " SELECT o.*,c.*,ou.*,u.user_xingming FROM ordertable o LEFT JOIN customers c ON o.cus_id=c.cus_id "
    + "LEFT JOIN USER u ON o.user_id=u.user_id left join outbound ou on o.out_id=ou.out_id  where  o.ord_status=2  and o.out_id IS NOT NULL";
    if (start != null && start != "" && end != null && end != "") {
    String w = " and ou.out_date >='" + start + "' and ou.out_date<='" + end + "' ";
    sql = sql + w;
    sql1 = sql1 + w;
    }
    String osql = sql + " and o.pub_id in (select pub_id from publish where pub_state=" + pub_state + ")" + " GROUP BY ou.out_code";
    sql = sql + " and o.pub_id in (select pub_id from publish where pub_state=" + pub_state + ")"
    + " GROUP BY ou.out_code,o.iss,o.edi_id,c.cus_name ORDER BY ou.out_id DESC";
    sql1 = sql1 + " and o.pub_id in (select pub_id from publish where pub_state=" + pub_state + ") "
    + "GROUP BY ou.out_code,c.cus_name,o.iss ORDER BY ou.out_id DESC";
    List<Ordertable> oList = Ordertable.dao.find(sql);
    List<Ordertable> oList1 = Ordertable.dao.find(sql1);
    List<Outbound> chuku = Outbound.dao.find(osql);
    //获取刊等信息
    List<Publish> plist = Publish.dao.find("select * from publish where pub_state=" + pub_state);
    Font font = null;
    Font cellFont = null;
    PdfPTable table = null;
    PdfPHeaderCell header = null;
    PdfPCell cell = null;
    String[] pdf = new String[chuku.size()];
    for (int k = 0; k < chuku.size(); k++) {
    pdf[k] = PathKit.getWebRootPath() + "/temp/OutboundOrder" + k + ".pdf";
    //序号
    Ordertable out = oList1.get(k);
    //设置pdf每页的页眉和页脚
    Date outDate = out.get("out_date");
    //1.建立一个document实例对象
    Rectangle rec = new Rectangle(240 * 2.5f, 140 * 2.5f);
    Document document = new Document(rec, 10, 10, 50, 50);//纸张大小,marginleft,marginright,margintop,marginbottom
    FileOutputStream outputStream = new FileOutputStream(pdf[k]);
    //2.建立一个书写器(writer)与document对象关联,通过书写器可以将文档写入磁盘
    PdfWriter writer = PdfWriter.getInstance(document, outputStream);
    writer.setPageEvent(new HeadFootInfoPdfPageEvent(出库单", outDate.toString(), "出", out.getStr("out_code")));
    //设置字体
    BaseFont baseFont = BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    font = new Font(baseFont, 10, Font.NORMAL);
    cellFont = new Font(baseFont, 10);
    //3.打开文档
    document.open();
    // 建立一个pdf表格
    List<Edition> eList = Edition.dao.find("select * from edition where pub_id in ( select pub_id from publish where pub_state="
    + pub_state + ")");
    //新建数组给table中的每个td设置宽度
    float[] chang = new float[eList.size() * 2 + 6];
    chang[0] = 15f;
    chang[1] = 80f;
    chang[2] = 30f;
    chang[3] = 30f;
    chang[4] = 35f;
    chang[5] = 5f;
    for (int i = 0; i < eList.size(); i++) {
    chang[i + 5] = 20f;
    }
    for (int i = 0; i < eList.size(); i++) {
    chang[eList.size() + i + 5] = 20f;
    }
    table = new PdfPTable(chang);
    table.setSpacingBefore(20f);
    // 设置表格宽度为100%  
    table.setWidthPercentage(100);
    table.setHeaderRows(2);//每页显示表头


    //品名
    cell = new PdfPCell(new Phrase("序号", cellFont));
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setRowspan(2);
    cell.addHeader(header);
    table.addCell(cell);
    //客户名称(邮编)
    cell = new PdfPCell(new Phrase("客户名称(邮编)", cellFont));
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setRowspan(2);
    cell.addHeader(header);
    table.addCell(cell);
    //业务员
    cell = new PdfPCell(new Phrase("业务员", cellFont));
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setRowspan(2);
    cell.addHeader(header);
    table.addCell(cell);
    //收件人
    cell = new PdfPCell(new Phrase("收件人", cellFont));
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setRowspan(2);
    cell.addHeader(header);
    table.addCell(cell);
    //联系电话
    cell = new PdfPCell(new Phrase("联系电话", cellFont));
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setRowspan(2);
    cell.addHeader(header);
    table.addCell(cell);
    //期数
    cell = new PdfPCell(new Phrase("期数", cellFont));
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setRowspan(2);
    cell.addHeader(header);
    table.addCell(cell);


    //获取刊等信息
    for (Publish p : plist) {
    int n = Db.queryLong("select count(*) from edition  where pub_id=" + p.getInt("pub_id")).intValue();
    String pName = p.getStr("pub_name");
    //杂志
    cell = new PdfPCell(new Phrase(pName, cellFont));
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setColspan(n * 2);
    cell.addHeader(header);
    table.addCell(cell);
    }


    //获取刊等信息
    for (int j = 0; j < plist.size(); j++) {
    Publish p = plist.get(j);
    List<Edition> editList = Edition.dao.find("select edi_name from edition  where   pub_id=" + p.getInt("pub_id"));
    for (Edition edition : editList) {
    String eName = edition.getStr("edi_name");
    cell = new PdfPCell(new Phrase(eName + "\r订数", cellFont));
    cell.addHeader(header);
    table.addCell(cell);
    cell = new PdfPCell(new Phrase(eName + "\r赠数", cellFont));
    cell.addHeader(header);
    table.addCell(cell);
    }
    }
    int hao = 0;
    for (int s = 0; s < oList1.size(); s++) {
    Ordertable ot1 = oList1.get(s);
    if (out.getInt("out_id") == ot1.getInt("out_id")) {
    ++hao;
    //序号
    cell = new PdfPCell(new Phrase("" + hao, font));
    table.addCell(cell);
    //客户名称
    cell = new PdfPCell(new Phrase(ot1.getStr("cus_name") + "(" + ot1.getStr("cus_code") + ")", font));
    //cell.setColspan(8);
    table.addCell(cell);
    //业务员
    cell = new PdfPCell(new Phrase(ot1.getStr("user_xingming"), font));
    table.addCell(cell);
    //收件人
    cell = new PdfPCell(new Phrase(ot1.getStr("cus_linkman"), font));
    table.addCell(cell);
    //联系电话
    cell = new PdfPCell(new Phrase(ot1.getStr("cus_phone"), font));
    table.addCell(cell);
    //期数
    cell = new PdfPCell(new Phrase(ot1.getStr("iss"), font));
    table.addCell(cell);
    for (int n = 0; n < plist.size(); n++) {
    Publish p = plist.get(n);
    List<Edition> editList = Edition.dao.find("select edi_id from edition  where pub_id=" + p.getInt("pub_id"));
    for (int j = 0; j < editList.size(); j++) {
    Edition edition = editList.get(j);
    PdfPCell cell1 = new PdfPCell(new Phrase("", cellFont));
    PdfPCell cell2 = new PdfPCell(new Phrase("", cellFont));
    int flag = 0;
    for (int i = 0; i < oList.size(); i++) {
    Ordertable ot = oList.get(i);
    if (ot1.getInt("cus_id") == ot.getInt("cus_id") && ot1.getInt("user_id") == ot.getInt("user_id")
    && ot1.getStr("ord_year").equals(ot.getStr("ord_year")) && ot1.getStr("iss").equals(ot.getStr("iss"))
    && ot.getInt("edi_id") == edition.getInt("edi_id") && ot.getInt("pub_id") == p.getInt("pub_id")) {
    String d = ot.getBigDecimal("suber").toString();
    //订数和
    cell1 = new PdfPCell(new Phrase(d.equals("0") ? "" : d, cellFont));
    cell1.setPadding(0);
    table.addCell(cell1);
    String z = ot.getBigDecimal("freenum").toString();
    //赠数和
    cell2 = new PdfPCell(new Phrase(z.equals("0") ? "" : z, cellFont));
    cell2.setPadding(0);
    table.addCell(cell2);
    flag = 1;
    }


    }
    if (flag == 0) {
    //订数和
    cell1 = new PdfPCell(new Phrase("", cellFont));
    cell1.setPadding(0);
    table.addCell(cell1);


    //赠数和
    cell2 = new PdfPCell(new Phrase("", cellFont));
    cell2.setPadding(0);
    table.addCell(cell2);
    }
    }
    }
    }
    }
    //5.关闭文档
    document.add(table);
    document.close();
    writer.close();
    outputStream.close();
    }
    mergePdfFiles(pdf, PathKit.getWebRootPath() + "/temp/OutboundOrder.pdf");
    redirect(getRequest().getScheme() + "://" + getRequest().getServerName() + ":" + getRequest().getServerPort()
    + getRequest().getContextPath() + "/temp/OutboundOrder.pdf");


    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (DocumentException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    我们在写文件或者读文件的时候切记关闭流。

    /**
    * 合并多个pdf

    * @param files
    *            pdf数组
    * @param savepath保存新的pdf的路径
    *            LMM
    */
    private void mergePdfFiles(String[] files, String savepath) {
    try {

    //合并的pdf的纸张大小
    Rectangle rec = new Rectangle(240 * 2.5f, 140 * 2.5f);
    Document document = new Document(rec);
    FileOutputStream out = new FileOutputStream(savepath);
    PdfCopy copy = new PdfCopy(document, out);
    document.open();
    for (int i = 0; i < files.length; i++) {
    PdfReader reader = new PdfReader(files[i]);
    int n = reader.getNumberOfPages();


    for (int j = 1; j <= n; j++) {
    document.newPage();
    PdfImportedPage page = copy.getImportedPage(reader, j);
    copy.addPage(page);
    }
    reader.close();
    }
    document.close();
    copy.close();
    out.close();

    //把这些流关闭后删除之前的pdf
    for (int i = 0; i < files.length; i++) {
    File file = new File(files[i]);
    file.delete();
    }


    } catch (IOException e) {
    e.printStackTrace();
    } catch (DocumentException e) {
    e.printStackTrace();
    }
    }

    展开全文
  • 到现在才发现,网页可以直接输出为pdf文档 软件准备:火狐浏览器FireFOX、AdobePDF ...将需要合并多个文件放在一个统一的文件夹 打开AdobePDF软件——&amp;gt;点击左上角文件——&amp;...

    到现在才发现,网页可以直接输出为pdf文档
    软件准备:火狐浏览器FireFOX、AdobePDF

    一、网页打印:

    1. 使用火狐浏览器FireFOX
    2. 选择相应的网页,点击右上角菜单选项,点击打印,弹出打印页面直接打印
    3. 在打印页面可以直接选择打印页面范围
    4. 最后保存到想要保存的文件夹即可

    二、合并pdf

    1. 将需要合并的多个文件放在一个统一的文件夹
    2. 打开AdobePDF软件——>点击左上角文件——> 选中创建——> 选中将多个pdf合并为单个文件 ——>点击中间加号按钮(回收站左边那个)——> 选中添加文件夹——> 选择相应的文件夹合并即可
    3. 另外,合并过程中也可以规定合并的页码范围
    展开全文
  • C#+itextsharp开发免费开源绿色pdf发票合并工具(带源码),此工具可以把2或4个个pdf发票合并到一张纸上打印,节省纸张。也可以合并其它pdf文件,电子章不丢失。
  • 多个PDF合并后页面大小不一

    千次阅读 2019-10-04 02:25:29
    最近在给老师写一个项目的验收报告,需要把多个pdf合并成一个。我原本用的pdf阅读器是福昕,奈何他的合并是要付费的。。于是乎管段卸载了,重新下载了一个新的阅读器----Adobe Acrobat Professional。 没想到合并...

    最近在给老师写一个项目的验收报告,需要把多个pdf合并成一个。我原本用的pdf阅读器是福昕,奈何他的合并是要付费的。。于是乎管段卸载了,重新下载了一个新的阅读器----Adobe Acrobat Professional。

    没想到合并之后又有新的问题:页面大小不一。。。

    通过在网上查询之后有了解决方法:Adobe Acrobat Professional的虚拟打印机!!

    点击“打印”按钮

    设置“属性”中的页面大小为A4,点击“确定”就好啦!!

    转载于:https://www.cnblogs.com/rlzgqmh/p/6802903.html

    展开全文
  • 传统的PDF合并器一般只能合并多个PDF文件成为一个PDF文件,但是今天介绍的PDF页面合并器这款免费工具设计出发点不太一样,它就是用来合并一个PDF文件中选定页面的。它可将2个或多个选定的PDF页面合并在一页PDF页面上...

    PDF格式在我们生活和工作中非常常见,经常用于合同、电子书和出版等方面。有些朋友可能会遇到需要把单页PDF变成双页的PDF用来制作双页杂志和书刊,或者将有些PDF文件里的页面合并到一页里去打印全部内容(这样好像还能节省纸张和碳粉啊哈哈)。传统的PDF合并器一般只能合并多个PDF文件成为一个PDF文件,但是今天介绍的PDF页面合并器这款免费工具设计出发点不太一样,它就是用来合并一个PDF文件中选定页面的。它可将2个或多个选定的PDF页面合并在一页PDF页面上并生成一个新的PDF文档。

    老规矩,先上图:

    PDF页面合并器可以方便的输出双页PDF文件,四页页面或者更多页来创建杂志或者刊物的印刷版式。而且PDF页面合并器合并页面速度非常快,通常几秒钟就可以合并完上百个页面。它还可以设置页面数量来将每2、4或更多页面合并成一页,还能够自定义输出页面尺寸。除了标准A4纸张大小,PDF页面合并器已经预设了30多种常用纸张尺寸。

    下面是合并的效果:

    (合并2页PDF成1页)

     

    (合并多页PDF成1页)

     

    简易教程 - 3步合并多个PDF页面成一页

    1.打开PDF文件

    单击“打开PDF”按钮以打开您要将所有页面合并为一页的PDF文件。

    2.选择所有页面

    单击“全选”按钮以选择页面列表中的所有页面。如果你只想合并其中部分页面,那就在页面列表中只选择需要合并的页面就行了。

    3.开始合并

    现在,只需单击“立即合并!” 按钮。 这些页面将在几秒钟内就合并好啦!

     

    最后,PDF页面合并器的官网和下载地址:https://www.pdfgongju.com/pdfyemianhebingqi.html

     

    展开全文
  • 你要跑到打印店将所有文件打印出来再一页页的合并校对?不,并不需要那样麻烦。这里有一些更快更简便的方法,能让你在电脑上将PDF文件合并在一起。 来一起了解一下具体的PDF文件合并的方法: 前往合并PDF功能页; ...
  • 由于工作原因,经常需要将多个pdf文件合并打印,有时候上网找免费合并工具比较麻烦(公司内网不能访问公网),于是决定搞个小工具。 具体实现 需要安装 PyPDF2 pip install PyPDF2 代码 # -*- coding=utf-8 -*- ...
  • 1、使用Adobe Acrobat软件,没有的自行下载。 2、打开PDF文件[ 3、点击文件–>打印 4、名称选择Adobe PDF, 然后点击属性 5、Adobe PDF设置中,默认设置选择最小文件大小即可。 ...
  • pdf合并成一的操作方法

    千次阅读 2015-01-15 14:44:32
    最近,楼主发了一套200页... 最简单的方法:下载一个PDF合并器,如常用的迅捷PDF合并软件(最好是V1.1版本)  操作步骤:  (1)首先看看桌面上有木有这个软件,没有就去百度下一个,此处不必言下载过程,伙伴们都的
  • 有时候,我们下载了多个PDF文件, 但希望能把它们合并成一个PDF文件。例如:你下载的数个PDF文件资料或者电子发票,你可以使用python程序合并成一个PDF文件,无论是阅读或是打印都更方便些。 2. 分析 首先,我们要...
  • pdfFactory是一款PDF虚拟打印软件,但与其他虚拟打印机软件不同的是,它使用起来更加简单高效。由于无需Acrobat就能生成Adobe PDF文件,它可以帮助用户在系统没有连接打印机的情况下,将大部分支持打印的文档资料...
  • pdfFactory是一款PDF虚拟打印软件,但与其他虚拟打印机软件不同的是,它使用起来更加简单高效。由于无需Acrobat就能生成Adobe PDF文件,它可以帮助用户在系统没有连接打印机的情况下,将大部分支持打印的文档资料...
  • 多个PDF文件或PDF数据流的合并

    千次阅读 2020-04-16 18:50:25
    转换成PDF的二进制流返回),主要是为了方便开发和维护,对应单个的打印文件的预览都没有问题,后期提出新需求,需要勾选多个预览文件时,在一个弹框里面看到所有的pdf文件,就是一个接着一个的长pdf。 特别说明:...
  • 老婆给女儿整理打印学习资料,希望能从很多个pdf中抽取一些页码来合并成一个文件, 就希望我能写一个程序来实现这个功能。刚好最近正在学习python,就用python开发了一个 pdf合并工具,也算是学以致用吧。 界面...
  • PDF合并

    2018-09-30 10:01:00
    Java代码实现一个或多个合并生成打印一个完整的PDF,可以参考下面的代码: public void createPdf(HttpServletResponse response) { PdfReader reader1 = null; PdfReader reader2 = null; response....
  • PDF合并工具

    2017-07-26 21:28:51
    国外非常专业的一个PDF合并软件,支持将多个PDF文件合并成一个文件,同时支持对合并后的文件进行加密,包括文件打开加密,权限加密例如是否允许打印、切割、旋转、添加文字表格等编辑权限。 在合并之前可以对PDF文件...
  • 在条码打印软件中不仅可以导入导出PDF文档,而且在条码打印软件中有PDF工具箱,...顾名思义,就是把一个PDF文档根据页数拆分成多个PDF文档。把需要拆分的PDF文档添加到PDF工具箱中,选择“拆分文件”,设置每个PD...
  • 张PDF文件合并成一个PDF文件

    千次阅读 2006-03-21 11:57:00
    pdf报表的时候经常会遇到用户要求单张生成的报表要求能一下打印,生成一张报表,实现起来比较麻烦,这里介绍一种合并Pdf报表的实现办法。就是用户选择全部打印的时候,在后台先单张生成报表,然后再合并成一张报表...
  • 近日,FastReport VCL更新至v6.7,在新版本中,添加了对最新版本IDE的支持,简化了用于付款标准的条形码的创建,新增从预览窗口直接编辑RichView的功能,同时修复了多个Bug问题。欢迎下载体验。(点击下方按钮下载)...
  • 学Python正好学到结构化文本文件PDF的处理,本文讲述用第三方库PyPDF2来处理合并多个PDF文件的问题。 IDE: Thonny 代码: from PyPDF2 import PdfFileMerger merger=PdfFileMerger() input1=open('C:/User
  • winform 按顺序连续打印多个PDF文件 ...其实方法很简单,因为需要把多个PDF文档按顺序连续打印,为此我们为什么不把要打印的pdf文档按顺序合并成一个PDF打印呢?如此就简单多了哦。 这里文章写出来并不是为...
  • 在这种情况下,即使您使用pdf合并工具,带有奇数页码的pdf也可能会与其他pdf混淆,并且在打印多个pdf时,您必须根据自己的需要反复翻页和放置输出文件。 pdf编号。 为了克服这个问题,我使用iText7合并了pdf,并使...
  • 功能:将PDF发票按每页一张、两张或四张合成一单一的PDF文件,方便打印

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 339
精华内容 135
关键字:

多个pdf合并打印