使用一个gopdf 即可实现
牢记真诚善良忍让


package main/*
1.开启1.11mod模式
2.在项目中初始化下mod 比如项目文件夹是go 执行 go mod init go 实际名字叫什么都行 运行后会生成.mod .sum文件
3.在包里还要导入下执行 go get github.com/signintech/gopdf
4.可以运行了  go run xxx.go*/
import ("github.com/signintech/gopdf""fmt""time""regexp""log""os""bufio"
)
func main() {fmt.Println("请选择功能 1 截取部分页面 2 合并多个文件")var opt int=1// fmt.Scan(&opt)    //似乎Scan bufio不能同时用reader:=bufio.NewReader(os.Stdin)   //要支持空格输入 需要引入bufio// b,_:=reader.ReadByte()// opt=int(b-'0')bs,_,_:=reader.ReadLine()fmt.Sscan(string(bs),&opt)fmt.Println("你的选择是",opt)// log.Println(opt,b)if opt ==1 {fmt.Println("格式 文件名 起始页 结束页 例如 xxx.pdf 3 20表示截取3-20页")} else if opt ==2{fmt.Println("请输入要合并的文件名 空格分割 不可换行")}// var s []string// fmt.Scan(&s)var s string// fmt.Scanln(&s)// fmt.Println("你输入了:",s)bs,_,_=reader.ReadLine()// log.Println(bs,_x,_xx)s=string(bs)fmt.Println("你输入了:",s)// os.Exit(1)ss:=regexp.MustCompile(`\s+`).Split(s,-1)pdf := gopdf.GoPdf{}// pdf.Start(gopdf.Config{PageSize: gopdf.Rect{W: 595.28, H: 841.89}}) //595.28, 841.89 = A4pdf.Start(gopdf.Config{ PageSize: *gopdf.PageSizeA4 })// pdf.AddPage()var begin,end intif opt==1{// x,xx:=fmt.Sscan(s,&begin,&end)var fname stringx,xx:=fmt.Sscanf(s,"%s %d %d",&fname,&begin,&end)ss=ss[:1]//[]string{ss[0]}log.Println(ss,begin,end,x,xx)}for _,name:= range ss{log.Println(name)func (){defer func() {    //注意恢复异常的位置 在函数开头if p := recover(); p != nil {log.Println(p)}}()      i:=1_:for ;(true);i++{// func () {// pdf.AddPage()// Import page 1if opt==1 && i<begin{continue}if opt==1 && i> end{break}page:= pdf.ImportPage(name, i, "/MediaBox")log.Println("页面id",page)// if tpl1==nil{//     break// }// Draw pdf onto page// pdf.UseImportedTemplate(tpl1, 50, 100, 400, 0)pdf.AddPage()pdf.UseImportedTemplate(page, 0, 0, (gopdf.PageSizeA4.W), 0)// }()}}()}ts:=time.Now().Format("20060102_150405")// err:=pdf.WritePdf(fmt.Sprintf("合并输出%v.pdf",time.Now().UnixMilli()))fs:=fmt.Sprintf("合并输出_%v.pdf",ts)err:=pdf.WritePdf(fs)//time.Now().UnixMilli()))if err!=nil{log.Println(err)}log.Println("输出:",fs)log.Println("fin...")
}

用golang处理pdf: 截取pdf和合并pdf相关推荐

  1. 电脑上怎么做pdf文件_怎么合并PDF文件?PDF合并软件哪个好?

    怎么合并PDF文件?很多人现在在工作中都会使用到PDF格式的文件.在传输这些PDF文件时,如果一张一张的发送速度会很慢,也会给文件接收者造成麻烦.遇到这种情况时,我们最好将这些PDF文件先合并起来.P ...

  2. ImageMagick convert多张照片JPG转成pdf格式,pdfunite合并PDF文件

    在认识ImageMagick之前,我***的图像浏览软件是KuickShow,截图软件是KSnapShot,这两款软件都是KDE附带的软件,用起来也是蛮方便的.在一次偶然的机会中,我遇到了ImageM ...

  3. pdf合并成一个pdf软件?能合并pdf的软件?

    多个pdf合并成一个pdf软件工具? 现在PDF文件是我们日常办公中比较常见的一种文件格式, 我们在处理PDF文件的时候,难免会遇到各种各样的问题.有时候我们需要把多个pdf合并成一个pdf,但是还有 ...

  4. pdf合并成一个pdf工具,可以合并pdf的软件哪个好?

    pdf合并成一个pdf工具哪个好? 现在PDF文件是我们日常办公中比较常见的一种文件格式, 我们在处理PDF文件的时候,难免会遇到各种各样的问题.有时候我们需要把多个pdf合并成一个pdf,但是还有些 ...

  5. PHP利用FPDI 制作PDF 档案 (php合并pdf, php签名pdf)

    昨天研究如何在既有的PDF 档案上放入中文字,虽然找到支援中文的FPDF ,但是有些Unicode 字集我实在试不出如何显示(如:堃) . 我的同事建议我用图形来解决看看,以下就是我的实验过程(我用的 ...

  6. JAVA合并pdf,拆分pdf文档

    毕业材料整理的时候要合并pdf文档,把一些文档按页码拆分出来,我本来想用wps弄的,但是它要vip,就这?就vip?哼,身为一个计算机毕业的,这种小事与其再去网上找别的软件解决,不如自己代码解决.(其 ...

  7. matlab 函数pdf怎么用_smallpdf怎么用转换器合并pdf?

    我身边有一位特别热爱文学的朋友,他经常把写好的文章交给他人批阅,由于写的字数可能较多导致页数也比较的多,而且他还会将文档转换成pdf文件格式发给对方,因为pdf是打印论文,格式不走样的唯一方便格式.跨 ...

  8. 多html整理合并pdf

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/106246106 -写在前面   最近想提升自己的PPT制作 ...

  9. 如何合并PDF文件?两个方法教你轻松合并

    怎么把PDF文件合并到一起呢?经常使用PDF文件的小伙伴肯定有合并PDF文件的需求,因为很多时候我们的PDF文件不是一个两个,而是有很多个内容简短的单个文件,这样阅读起来就会很麻烦,需要挨个打开不说, ...

  10. 10个免费合并PDF文档的方法推荐

    问:我是大四学生,写论文时有好多文献要参考,都是PDF格式的.他们太分散了,十几二十个文件难以保存和阅读,有什么方法可以把他们都合并成一个PDF文档呢? 答:您可以在免费网站的帮助下合并PDF文件.这 ...

最新文章

  1. 快速删除c/c++语言中的注释
  2. VTK:可视化之StructuredDataTypes
  3. python列表生成多个号码_python按需生成固定数量电话号码并保存为excel(不重复)...
  4. Lync Server 2010迁移至Lync Server 2013部署系列 Part18:开启Lync 2013 Mobility
  5. Linux位置无关代码实现,浅谈位置无关代码
  6. 在 eclipse 中设置每行的字数
  7. Virtual Box下配置Host-Only联网方式详解
  8. spark提交到yarn_如何理解Spark应用的执行过程
  9. webplayer 设置加载图标和屏蔽右键
  10. 2010.2--ip redirects 和 ip directed-broadcast含义
  11. VSCode 常用编程字体
  12. 前端三大主流框架如何去选择?
  13. Excel常用公式之LOOKUP
  14. Linux在VMware中如何创建网站
  15. bootstrap文字,图片
  16. Win 10系统修复,DISM_se7en3_新浪博客
  17. NBIOT模块 BC20 OPENCPU TCP 串口透传
  18. 企业项目权限管理设计思路详解
  19. 找不到中文语音预训练模型?中文版 Wav2vec 2.0和HuBERT来了,腾讯游戏和西工大联合出品...
  20. 重庆邮电工商管理类转计算机专业,2021年重庆邮电大学转专业,大一新生转专业和入学考试...

热门文章

  1. 熵、条件熵、联合熵、互信息的理解
  2. matlab mstg函数,matlabfilter
  3. 01-不是过去的原因而是现在目的
  4. 单页应用 多页应用的区别
  5. 面试必备之 悲观锁与乐观锁
  6. Swift身份证正则表达式
  7. cloudreve安装linux教程,Cloudreve云盘系统小白超详细图文安装教程
  8. OCJP 1Z0-808考题全解析(含题目下载,持续更新中(60/236))
  9. 对于养鱼爱病的新手,给你们一些个人经验,觉得对可以体会
  10. Dynamo 如何生成管道