最近打印电子发票时,由于公司打印机都是A4纸,打印一张发票用一张A4,太浪费了。

想到找一个合并多张发票打印在一张A4的小工具,网上找到的要么需要授权,要么到处弹广告。

作为程序员,那就自己弄一个吧。

于是实现了如下功能:

  1. 选择需要打印的多张发票pdf文件,合并成一个pdf文件。
  2. 用pdf阅读器工具打开pdf文件,打印时选择4合1打印,横版。刚好把4张发票打印到一张A4上。

主要代码:

引用dll:using Spire.Pdf;

/// <summary>
        /// 选择文件操作
        /// </summary>
        private void SelectPdfFile()
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "pdf文件(*.pdf)|*.pdf";
            openFileDialog.Multiselect = true;
            if(openFileDialog.ShowDialog()==DialogResult.OK)
            {
                foreach (string fileName in openFileDialog.FileNames)
                {
                    if (!this.listBox1.Items.Contains(fileName))
                    {
                        this.listBox1.Items.Add(fileName);
                    }
                }
            }
        }
        /// <summary>
        /// 拖放pdf文件进入
        /// </summary>
        private void DragEnterPdf(DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.Copy;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            } 
        }
        private void DragDropPdf(DragEventArgs e)
        {
            String[] files = e.Data.GetData(DataFormats.FileDrop, false) as String[];
            foreach (string fileName in files)
            {
                string extName = fileName.Substring(fileName.Length - 4, 4);
                if (extName.ToUpper() == ".PDF")
                {
                    if (!this.listBox1.Items.Contains(fileName))
                    {
                        this.listBox1.Items.Add(fileName);
                    }
                }
            }
        }
        /// <summary>
        /// 合并文件操作
        /// </summary>
        private void mergePdf()
        {
            try
            {
                if (this.listBox1.Items.Count > 0)
                {
                    string[] files = new string[this.listBox1.Items.Count];
                    for (int i = 0; i < this.listBox1.Items.Count; i++)
                    {
                        files[i] = this.listBox1.Items[i].ToString();
                    }
                    string outputFile = string.Format("{0}\\电子发票合并_{1}.pdf",
                        this.txtOutputPath.Text,
                        System.DateTime.Now.ToString("yyyyMMddHHmmss"));
                    PdfDocumentBase doc = PdfDocument.MergeFiles(files);
                    doc.Save(outputFile);
                    //doc.Save(outputFile, FileFormat.PDF);
                    //doc.SaveToDoc("test.doc");
                    System.Diagnostics.Process.Start(outputFile);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("合并操作错误:" + ex.Message, "pdf合并操作");
            }
        }

编译好的可执行文件下载

百度网盘:https://pan.baidu.com/s/1fkpS3NlPsKmmlGKQ8i0y_Q

提取码:asdc

2021-10-09 将多张电子发票pdf合并成一个pdf文件相关推荐

  1. 怎么将几张pdf合并成一张_如何将多个pdf文件合并成一个pdf文件?

    原标题:如何将多个pdf文件合并成一个pdf文件? 我很喜欢使用PDF文件格式,为什么呢?因为PDF具有许多其他电子文档格式无法相比的优点.PDF文件格式可以将文字.字型.格式.颜色及独立于设备和分辨 ...

  2. 多张JPG如何合并成一个PDF文档

    jpg合并成一个pdf文件,当我们扫描一些文档资料之后形成的图片会放在同一个文件夹中,为了方便查看和管理这些图片,就会将图片合成一个文档转换成PDF文件,今天教大家免费的方法,一起看看吧. 1,打开浏 ...

  3. 多张JPG图片怎么转成一个PDF

    我们有时用扫描仪扫描文件,扫描出来是JPG格式的,需要将扫描出来的众多JPG图片合并成一个PDF文件,那怎么实现这种格式转换呢?今天小编给大家分享一个免费的将JPG转PDF的方法,希望能帮到大家. 首 ...

  4. ActiveReports 报表应用教程 (5)---解密电子商务领域首张电子发票的诞生

    2019独角兽企业重金招聘Python工程师标准>>> 6月27日京东商城发布了中国电子商务领域首张电子发票,同时宣布相关系统正式上线,这标志着中国电子商务的步伐又向前迈出了重要的一 ...

  5. ActiveReports 报表应用教程 (5)---解密电子商务领域首张电子发票的诞生(套打报表)...

    ActiveReports 报表应用教程 (5)---解密电子商务领域首张电子发票的诞生(套打报表) 原文: ActiveReports 报表应用教程 (5)---解密电子商务领域首张电子发票的诞生( ...

  6. 纬创科技面试 2021.10.09 19:00

    纬创科技面试 面试时间:2021.10.09 19:00 面试方式:两个面试官 腾讯视频面试 面试总结:总体面试比较简单,但是问题较多,也很全面.总体上还是比较满意的 问题 基本情况: 介绍之前的项目 ...

  7. excel几个表合成一张_快速将多个excel表合并成一个excel表

    应用场景:有很多张excel,而且excel表里面的结构基本一样,如何快速将这些excel合并在一个excel页面,便于后期分析和统计 技术实现:利用excel表的宏计算实现. 注意:金山的WPS没有 ...

  8. jpg怎么合成一份_如何将多张JPG图片合并成一个GIF?

    原标题:如何将多张JPG图片合并成一个GIF? 今天是广东入秋成功的某一天,虽然天气变冷了,但外面的紫外线还是毒辣得很,所以大家还是在室内跟小编一起研究教程方案吧! 今天要给大家介绍的是将多张静图合并 ...

  9. excel如何把多张表合并成一个表_如何将多个excel表格合并成一个_excel多表合并到一种表格的方法...

    Excel是我们日常办公经常要用到的工具,有时候我们会制作非常多的Excel表格,为了方便管理,我们需要将这些表格合并到一起,那么如何将多个excel表格合并成一个呢?相信很多朋友都不太清楚,那么今天 ...

最新文章

  1. 抢占日本市场过程“苦不堪言”
  2. 快速学习Android开发知识点总结(磨砺营马剑威Android)
  3. php 中国标准时间,linux 系统时间与硬件时间与中国标准时间
  4. go支持对函数返回值命名,可以解决函数返回值的顺序书写问题
  5. 结合JDK源码看设计模式——桥接模式
  6. 【图像处理】——图像特效处理(马赛克、图像融合、毛玻璃等)
  7. 五个值得放收藏夹吃灰的Go CheatSheet 站点
  8. VueGoogleMaps在vue中的使用
  9. 成立一年,openEuler为开源带来哪些改变
  10. @TableField注解使用(忽略扫描)
  11. 2015-5-5分享的pdf
  12. 微信小程序阻止默认冒泡事件
  13. 2021级《高级语言》重现 F 方阵
  14. ESP32和LoRa SX1278通讯
  15. SAP ABAP EXCEL导出多个SHEET页签
  16. mybatis 实现动态数据源连接
  17. java xtend_Java加上Xtend,满足你对C#语法的所有想象
  18. html页面input框输入不了,input框不能输入问题
  19. Java中的byte[]/char[]/int/String数据类型转换
  20. 关于Zion真实性问题的图文分析及其他 V1.06

热门文章

  1. php分解字符串_php字符串分割的详解
  2. 我的读书笔记 -《墨菲定律》
  3. Verilog HDL 语言基础
  4. loki报错与解决方法:failed to initialize table
  5. Shiro用户认证和用户授权流程
  6. 开源的分布式数据库中间件系统Mycat和阿里巴巴Cobar的对比
  7. 解决chrome谷歌浏览器访问网页过慢
  8. 授人以鱼不如授人以渔,今天手把手教你怎么从微软官方下载Windos10正版镜像
  9. XAMPP配置之Attempting to start MySQL service...和Error: MySQL shutdown unexpectedly.问题
  10. Linux---用户和组