PDF Tips

简介:

【结构原理篇】

1、什么是PDF

2、PDF文件结构——物理结构

3、PDF文件结构——逻辑结构

4、一个简单PDF文件的结构分析

5、PDF文件中交叉引用流对象(cross-reference stream)的解析方法


【iText/iTextSharp】

1、iText Developers

2、itextsharp sourceforge

3、itextsharp github

4、iTextSharp快速使用指南


【水印篇】

1、PDF去水印资源索引

2、使用PDFlib-6.0.2库生成PDF文档的水印清除方法

3、PDF内容抽取:3-Heights PDF Extract

4、某些情况下可以用 mutool.exe clean -d 解压pdf后再分析。


【ghostscript】

1、Ghostscript官网

2、gs命令行参数

3、ps2pdf: PostScript-to-PDF converter

4、ghostpdl-downloads。(github)

5、Compress PDF files with ghostscript。(github)

1
2
3
4
5
6
7
8
9
10
ghostscript -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS= /printer  -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
 
ghostscript -sDEVICE=pdfwrite 
             -dCompatibilityLevel=1.4 
             -dPDFSETTINGS= /printer 
             -dNOPAUSE 
             -dQUIET 
             -dBATCH 
             -sOutputFile=output.pdf 
             input.pdf

6、用 gs 将 eps 图片转为 png 图片:EPS to JPEG or PNG by Python

1
ghostscript -dBATCH -dNOPAUSE -dEPSCrop -r300 -sDEVICE=png256 -sOutputFile=out.png  in .eps


【mupdf】

1、mupdf官网

2、CentOS编译mupdf


【PDF文件属性】(商业软件不可更改Producer的值)


Producer Creator
福昕阅读器 创建工具 生成器
Adobe Reader PDF 制作程序 应用程序


【在线工具】

1、pdf to jpg - CloudConvert

2、在线pdf压缩(smallpdf)


*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1870504如需转载请自行联系原作者

RQSLT
相关文章
iframe 在线预览pdf、word、excel、ppt、txt、图片、视频
iframe 在线预览pdf、word、excel、ppt、txt、图片、视频
|
10月前
|
前端开发 C#
C# 基于NPOI+Office COM组件 实现20行代码在线预览文档(word,excel,pdf,txt,png)
C# 基于NPOI+Office COM组件 实现20行代码在线预览文档(word,excel,pdf,txt,png)
|
存储 Java Linux
Springboot 超简单实现在线预览,Word文档 doc、xlsx、pdf、txt等
Springboot 超简单实现在线预览,Word文档 doc、xlsx、pdf、txt等
2045 0
Springboot 超简单实现在线预览,Word文档 doc、xlsx、pdf、txt等
|
8月前
|
前端开发 JavaScript
前端实现文件预览(pdf、excel、word、图片)
前端实现文件预览(pdf、excel、word、图片)
188 0
|
Web App开发 Java 开发工具
app展示word、excel、pdf、ppt,sp SharedPreferences的基本用法
app展示word、excel、pdf、ppt,sp SharedPreferences的基本用法
194 1
|
算法
Tips In C
C语言中的使用操作 宏定义时使用do while防止语句的分离, 但是不使用与需要有返回值的语句, 这个时候可以参考第二条 宏定义时使用({}), ()加上{}的方式, 在代码中填写逻辑算法, 最后的一条语句就是该宏定义的返回值; 在使用该宏定义时需要以";"结尾
781 0
基于iTextSharp的PDF文档操作
  公司是跨境电商,需要和各种物流打交道,需要把东西交给物流,让他们发到世界各地。其中需要物流公司提供一个运单号,来追踪货物到达哪里?!   最近在和DHL物流公司(应该是个大公司)对接,取运单号的方式是调用对方提供的API,简单说,就是我们传一些发货地址和客户信息,要发的货物等,对方返回一个运单号和物流面单(就是我们淘宝快递上的面单)。
1553 0
|
程序员 C++