C# WinForm开发系列 - PDF

简介:

   Adobe 可移植文档格式 (PDF) 由 Adobe Systems 创立, 并在超过 15 年的时间里日甄完善。使用 Adobe 可移植文档格式, 可以捕获和查看来自任何应用程序、任何计算机系统的丰富强大的信息, 并将这些信息与全球各地的任何人共享。 世界各地的个人、企业和政府机构都很信赖并依靠 Adobe® PDF 来交流思想和视野。

将信息解放, 思想自由交流

开放格式 — 进行更安全可靠的电子信息交流的事实标准, 已为世界各地的各个行业部门和政府机构所认可。 符合行业标准 (包括 PDF/A、PDF/X 和 PDF/E)。

多平台    — 可在任何平台 (Macintosh、Microsoft® Windows®、UNIX® 和许多移动平台) 上进行查看和打印。

可扩展性 — 全世界有超过 1,800 家供应商提供基于 PDF 的解决方案, 包括生成工具、插件、咨询、培训和支持工具。

可信可靠 — 现今网络上的超过 2 亿份 PDF 文档, 证明依靠 Adobe PDF 来捕获信息的组织机构数量可观。

维护信息完整性 — 无论通过什么应用程序创建, Adobe PDF 文件在外观上都与原始文件完全一致, 并且会保留源文件 (文本、绘图、3D、全色图像、照片, 甚至业务逻辑) 的信息。

保持信息安全性 — 通过 Adobe Acrobat® 7.0 或 Adobe LiveCycle™ 软件创建的 Adobe PDF 文件可以进行数字签名或使用密码保护。

可搜索性 — 利用全文本搜索功能查找文档中的词语、书签和数据域。

可访问性 — Adobe PDF 文档支持辅助技术, 可帮助残障人士访问信息。

 

 在实际开发中, PDF文档创建我们一般会采用开源的 iText# (iTextSharp), 当然也有一些商用专门组件可以选择.

iTextSharp

   iText# (iTextSharp) is a port of the iText  open source java library written entirely in C# for the .NET platform. iText# is a library that allows you to generate  PDF files on the fly. It is implemented as an assembly.

 

 

iText 实践的目录(the content of iText in Action)      摘要: 该书是iText的作者Bruno Lowagie创作,将由Manning Publications Co. 于2006-11-01出版。in Action系列图书一向口碑不错,虽然还没有看到该书的内容(已经有部分读者有幸看到其中的部分章节),但有理由相信这是一本值得期待的好书。下面简要翻译了下该书的目录。 
正在争取该书的中文翻译事宜,由于国内PDF类的书出的不多,出版社似乎比较犹豫,希望看到中文版本的“iText in Action”(《iText实践》)的朋友留言支持下,必要的话,可以考虑把有关内容翻译成C#版本,来个iTextSharp实践,如何?  阅读全文 

 

苟安廷的专栏    原创 用C#制作PDF文件全攻略   ( 推荐, 是一份比较全面讲述iTextSharp组件使用的文档 )

    PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少,在网上搜来搜去,都转贴的是同一段“暴力”破解的方法,本文介绍了通过一个控件实现PDF文件制作,功能强大,制作简单。阅读全文>

Cure             报表开发最后一计-使用iTextSharp来开发报表

 

RubyPdf 的中文博客(专注PDF技术)

     摘要: Fill Chinese(CJK) PDF Form with iTextSharp  阅读全文

iTextSharp生成的PDF显示“Page X of Y”的效果,IPdfPageEvent的应用一例      摘要: 一个网友的来信: 
你好,我刚开始尝试使用iTextSharp,遇到一个问题: 
我生成的pdf要求页脚显示“Page x of y”,看范例里面的写法 
HeaderFooter f = new HeaderFooter( 
new Phrase("Page "), 
true); 
doc.Footer = f; 
这样显示可以看到当前页码,但是没办法得到PageCount。  阅读全文 

实现用C#和VB.NET调用Ghostscript的API,把Postscript文件转为PDF文件。      摘要: 因为一直有想法做.NET版本的PDFCreator,配合iTextSharp,那样这个PDF 虚拟打印机将会多么强大,梦想中……  阅读全文

利用iTextSharp对PDF进行签名(E-signing PDF documents with iTextSharp)--推荐      摘要: an example demonstrating how to sign PDF documents with iTextSharp library   阅读全文

PDFToText with ITextSharp--Extract text from PDF in C# (100% .NET)(推荐)      摘要: A simple class to extract plain text from PDF documents with ITextSharp. 
这是个好消息,但还仅仅是个雏形。  阅读全文

iTextSharp 问题系列:在PDFPtable里加入图像,如何控制图像大小      摘要: 加入的图像总是充满了整个Cell,需要控制大小,该如何处理  阅读全文

一个利用ChapterAutoNumber(iTextSharp的一个类)自动创建书签的话题

iTextSharp应用中关于“Cannot access a closed Stream”问题的解决办法(附带提供如何在页面中显示PDF的流)      摘要: 因为不少朋友提到过这个问题,就索性整理下方便大家也方便我自己了。  阅读全文

其实使用单独的project把那些资源文件以embeded resource的方式添加到project中,然后生成新的library,这样的好处你不用修改原来的iTextSharp来实现了(我之前介绍的CIDFont字体支持解决方案,当然效果是一样的)。作者前几天跟我说“The fonts can be loaded not only from resources but also from a directory
path. I'll try to setip some documentation this weekend.”,他说的可能应该不是这个方案。

http://sourceforge.net/project/showfiles.php?group_id=72954&package_id=168416

 

   在《 为iTextSharp增加CID-keyed 字体(简称CIDFont)支持,让你在没有中文(CJK)TrueType字体(.TTF,.TTC)环境下一样完美显示中文(CJK) 》一文中介绍的方法是把所有(或者想要的)CIDFont和Cmap嵌入到iTextSharp中,这时只要留心就会发现,iText的体积翻倍了,而且如果有了新的CIDFont,你还要重新编译iTextSharp,有没有别的解决办法呢?

 下面介绍的就是不使用iTextSharp的嵌入资源的方式,而是根据需要从文件中直接读取(当然你也可以把所需资源嵌入到你的程序中,不是iTextSharp中),解决办法当然还是从上文提到的三个方法(函数)动手了,那就是修改CJKFont.cs类,下面就把我修改好的贴在下面,有兴趣的自己研究吧,有什么好的建议也望不吝赐教。

    
    越来越多的人来信或者留言(甚至msn上找我),询问关于PDF Form填写的问题,尤其是中文(或者说中日韩文)表单填写的问题,本不想回答这类问题,因为相关的注意事项都已经在我的博客里说了,但现在看来还是有必要再啰唆下了,如果再有问题的话,希望带着Money来问,拜托了。   

下面这段代码根据iText的java教程修改而成,主要有一下用途:
1.填写表单;
2.利用CID字体填写中文(CJK:中日韩)表单;
3.利用TrueType字体填写中日韩表单(因为字体嵌入,生成的PDF会非常大);
4.支持服务端PDF的填写;

 

我的两份iTextSharp的教程源码(分别为C#和VB.NET)已被iTextsharp.sf.net收录      摘要: 看来我要继续努力更新和完善它们才是。另外根据iText 1.54 版本的教程也几经port完毕,不日也将提供下载,这封教程相比已经提交的在iTextSharp的应用深度上更有进步。  阅读全文

iTextSharp (iText#) tutorial update version,VB.NET version      摘要: 这个版本根据C#的版本通过SharpDevelop转换,然后修改而成  阅读全文

一个简单的iTextSharp的ASP.NET的例子(根据iText的jsp版本转换而来)      摘要: 这个例子本也属于iTextSharp Tutorial的一部份,但因为是ASP.NET的,所以当时在提交教程的时候就把它忽略了,不知道是否有放上来的必要  阅读全文

iTextSharp (iText#) tutorial update version(36773 times download from cnblogs)      摘要: iTextSharp从0.4.0以后,API做了很大修改,典型的是把方法名的首字母由小写改为了大写,另外很多java下痕迹也被.NET的风格所替代,因此http://iTextSharp.sf.net上提供教程都无法编译了,这对初学者不是什么好事情,我花了近一个星期的早晨时间把它们修改调试,并补充了一些遗漏的教程,上传上来供初学者参考。  阅读全文

 

一些关于iText和iTextSharp的旧闻(some old news about iText and iTextSharp)      摘要: Google Calendar使用iText来输出PDF(iText used in Google Calendar) 
New release iTextSharp 3.1.2 and iText 1.4.2 (2006-06-23)  阅读全文

一些和Acrobat有关的书籍(仅提供链接地址,不断更新中)Update:2006-05-16      摘要: 慢慢把从网上搜集到的关于Acrobat的书籍资料介绍给大家,如果你有好的资料,并且这里没有列出的也可以告诉我,谢谢。  阅读全文 

 

PDF Tools

 

PDF N-Up Maker:一个把PDF转成小册子或者把多个页面放到一个页面上的工具(免费,免Acrobat,命令行模式)      摘要: N-Up Printing allows you to shrink several pages onto one page(N-Up打印输出允许你缩小若干个页面 到一个页面上) Booklet就是小册子  阅读全文

pdfrotate:rotates each page in a pdf file by a given angle(now support 90,180,270)      摘要: pdfrotate可以方便地把PDF中的每一页按一定的角度(90,180,270)旋转,生成新的PDF。  阅读全文

pdfselect:随意抽取,排序你的PDF(免费,免Acrobat,Console)      摘要: 想从PDF中抽取奇数页(偶数页)为一个新的PDF? 
想把PDF逆向排序? 
想把PDF按照你希望的顺序从新排放? 
那就试试PDFSelect吧,免费,免Acrobat,Console  阅读全文

Release pdf cropper0.1(pdfcrop)      摘要: Remove white space around PDF's(need ghostscript 8.x) 
切除PDF每一页的白边 
支持批处理的命令行程序 
  阅读全文 

PDFCreator:一款免费,开源的PDF(Tiff,pcx,png,jpeg,bmp,PS,EPS)打印机(VB,GPL),并提供了COM接口,方便使用各种编程语言调用      摘要: 1.免费,开源(GPL),同时提供VB源代码和多种预编译版本; 
2.多种格式输出支持,不仅仅支持PDF,而且支持Tiff,pcx,png,jpeg,bmp,PS,EPS; 
3.多语言支持(中文翻译的很烂); 
4.增加AMD64 芯片的支持; 
5.提供COM接口,支持多种语言编程调用(提供了多种语言的demo); 
6.方便与PDF-T-Maker集成; 
  阅读全文 

PDFtoDXF or other Vector Graphics (PDF转 Autocad 的DXF及其他格式矢量图形):pstoedit+Ghostscript      摘要: this article shows how to Convert PDF to DXF, so autocad can easily edit it, the application of pstoedit , ghostscript and gsview  阅读全文 

 

其它


向PDF中添加图片和圆角文本框等元素

[翻译]
pmpdesign著Add Images and Textboxes to PDF

向PDF中添加图片和圆角文本框等元素

本文中的代码用以向PDF文件中添加图片圆角文本框,然后将PDF安全地嵌在一个Web页面中。


[介绍]

我需要在程序中创建PDF文件,显示诸如发票等商业财务文档。

当然,现在网上也有这类的控件,不过都是有商业限制的,于是,我准备开发一个没有任何限制、没有license费用的控件。

另一个想法是,限制代码的大小,我觉得如果能用5%的代码完成的时候,就不该加上3MB代码量。

最后,通过仔细研究Zainu的精彩的文章PDF Library for creating PDF with tables and text, in C# ,我开始了本文工作。

嵌入页面的PDF

在ASP.NET页面中创建PDF文档

翻译
fstrahberger. 著Creating PDF documents in ASP.NET

简介
这篇很短的文章介绍如何在ASP.NET页面中创建PDF文档,本文使用了免费的开源库http://sourceforge.net/projects/itextsharp/

代码
首先,我会创建一个最简单的“Hello PDF”,接下来再使用table创建一个更复杂些的PDF文档。为了达到这些,你需要首先下载开源的itextsharp库(),并在项目中引用它。

PDF文档有页面ShowPDF.aspx创建,同时通过“Response.Redirect”传递PDF给用户。


C#生成PDF,包括有文字、表格、图片  

网络资源

http://sourceforge.net/projects/itextsharp/
http://www.lowagie.com/iText/
http://www.microsoft.com/china/

CodeProject上PDF相关组件


本文转自peterzb博客园博客,原文链接:http://www.cnblogs.com/peterzb/archive/2009/07/05/1517364.html,如需转载请自行联系原作者。


目录
相关文章
|
17天前
|
前端开发 JavaScript 安全
C#一分钟浅谈:Blazor WebAssembly 开发
Blazor WebAssembly 是一个客户端框架,允许开发者使用C#和Razor语法构建Web应用。本文介绍了Blazor WebAssembly的基本概念、常见问题及解决方案,包括路由配置、数据绑定、异步操作、状态管理和性能优化等方面的内容,并分享了一些易错点及如何避免的方法。希望这些内容能帮助你在Blazor WebAssembly开发中少走弯路,提高开发效率。
88 51
|
15天前
|
开发框架 缓存 .NET
C# 一分钟浅谈:Blazor Server 端开发
Blazor Server 是基于 ASP.NET Core 的框架,允许使用 C# 和 Razor 语法构建交互式 Web 应用。本文介绍 Blazor Server 的基本概念、快速入门、常见问题及解决方案,帮助开发者快速上手。涵盖创建应用、基本组件、数据绑定、状态管理、跨组件通信、错误处理和性能优化等内容。
29 1
|
16天前
|
缓存 C# 开发者
C# 一分钟浅谈:Blazor Server 端开发
本文介绍了 Blazor Server,一种基于 .NET 的 Web 开发模型,允许使用 C# 和 Razor 语法构建交互式 Web 应用。文章从基础概念、创建应用、常见问题及解决方案、易错点及避免方法等方面详细讲解,帮助开发者快速上手并提高开发效率。
39 2
|
25天前
|
测试技术 Go C#
C#一分钟浅谈:ReSharper 插件增强开发效率
【10月更文挑战第25天】ReSharper 是 JetBrains 开发的一款 Visual Studio 插件,旨在提高 .NET 开发者的生产力。它通过代码分析、重构、导航等功能,帮助开发者避免常见错误,提升代码质量和开发效率。本文将通过具体代码案例,详细介绍 ReSharper 的常见功能及其应用。
37 1
|
1月前
|
C# Python
使用wxpython开发跨平台桌面应用,对wxpython控件实现类似C#扩展函数处理的探究
【10月更文挑战第30天】使用 `wxPython` 开发跨平台桌面应用时,可以通过创建辅助类来模拟 C# 扩展函数的功能。具体步骤包括:1. 创建辅助类 `WxWidgetHelpers`;2. 在该类中定义静态方法,如 `set_button_color`;3. 在应用中调用这些方法。这种方法提高了代码的可读性和可维护性,无需修改 `wxPython` 库即可为控件添加自定义功能。但需要注意显式调用方法和避免命名冲突。
|
2月前
|
JSON C# 开发者
C#语言新特性深度剖析:提升你的.NET开发效率
【10月更文挑战第15天】C#语言凭借其强大的功能和易用性深受开发者喜爱。随着.NET平台的演进,C#不断引入新特性,如C# 7.0的模式匹配和C# 8.0的异步流,显著提升了开发效率和代码可维护性。本文将深入探讨这些新特性,助力开发者在.NET开发中更高效地利用它们。
36 1
|
2月前
|
设计模式 程序员 C#
C# 使用 WinForm MDI 模式管理多个子窗体程序的详细步骤
WinForm MDI 模式就像是有超能力一般,让多个子窗体井然有序地排列在一个主窗体之下,既美观又实用。不过,也要小心管理好子窗体们的生命周期哦,否则一不小心就会出现一些意想不到的小bug
128 0
|
2月前
|
Java Apache Maven
将word文档转换成pdf文件方法
在Java中,将Word文档转换为PDF文件可采用多种方法:1) 使用Apache POI和iText库,适合处理基本转换需求;2) Aspose.Words for Java,提供更高级的功能和性能;3) 利用LibreOffice命令行工具,适用于需要开源解决方案的场景。每种方法都有其适用范围,可根据具体需求选择。
|
2月前
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
236 1
|
2月前
|
索引 Python
PDF文件页面提取操作小指南
PDF文件页面提取操作小指南