导航:首页 > 文档加密 > cpdf生成

cpdf生成

发布时间:2022-08-07 12:13:07

‘壹’ 想用C语言编写生成pdf的程序,苦于没法入门,有会用PDFlib这个的高手能教我编个最简单的程序。

sjt_xfwh的回答很对:“要很深厚的数学知识和计算机图形学的知识,还要加上过硬的编程能力。”我想,除此以外还要掌握很多的资料,特别是PDF若干个版本的详细格式,这与自身的勤奋努力无关,更不是随便就能得到的。连北大方正这样的大公司都不能很好处理这个问题,你的“野心”可真大呀!

‘贰’ C#生成PDF页脚第几页共几页

我用的是 这个组件来实现的.net生成PDF。首先创建一个工程,然后引用这个组件然后创建一个页面,添加一个 按钮然后开始写后台了。。不多说,直接贴代码。protected void Button1_Click(object sender, EventArgs e) { PDF(); } private void PDF() { string filePath = "C:\\PDF"; if (false == Directory.Exists(filePath)) Directory.CreateDirectory(filePath); string filename = filePath + "/PDF.pdf";//设置保存路径 Document doc = new Document(iTextSharp.text.PageSize.A4, 25, 25, 50, 40);//定义pdf大小,设置上下左右边距 PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(filename, FileMode.Create));//生成pdf路径,创建文件流 doc.Open(); writer.PageEvent = new HeaderAndFooterEvent(); HeaderAndFooterEvent.PAGE_NUMBER = true;//不实现页眉跟页脚 First(doc, writer);//封面页 doc.NewPage();//新建一页 PdfHeader(doc, writer);//在新建的一页里面加入数据 HeaderAndFooterEvent.PAGE_NUMBER = false;//开始书写页眉跟页脚 writer.Flush(); writer.CloseStream = true; doc.Close(); } private void PdfHeader(Document doc, PdfWriter writer) { string totalStar = string.Empty; writer.PageEvent = new HeaderAndFooterEvent(); string tmp = "这个是标题"; doc.Add(HeaderAndFooterEvent.InsertTitleContent(tmp)); } private void First(Document doc, PdfWriter writer) { string tmp = "分析报告"; doc.Add(HeaderAndFooterEvent.InsertTitleContent(tmp)); tmp = "(正文 页,附件 0 页)"; doc.Add(HeaderAndFooterEvent.InsertTitleContent(tmp)); //模版 显示总共页数 HeaderAndFooterEvent.tpl = writer.DirectContent.CreateTemplate(100, 100); //模版的宽度和高度 PdfContentByte cb = writer.DirectContent; cb.AddTemplate(HeaderAndFooterEvent.tpl, 266, 714);//调节模版显示的位置 }然后再新建一个类 这个类是用来重写Itext组件的一些方法的。该类要继承类PdfPageEventHelper和接口IPdfPageEvent然后重写里面的方法 public static PdfTemplate tpl = null;//模版 public static bool PAGE_NUMBER = false;//为True时就生成 页眉和页脚 iTextSharp.text.Font font = BaseFontAndSize("黑体", 10, Font.NORMAL, BaseColor.BLACK); //重写 关闭一个页面时 public override void OnEndPage(PdfWriter writer, Document document) { if (PAGE_NUMBER) { Phrase header = new Phrase("PDF测试生成页眉分析报告", font); Phrase footer = new Phrase("第" + (writer.PageNumber - 1) + "页/共 页", font); PdfContentByte cb = writer.DirectContent; //模版 显示总共页数 cb.AddTemplate(tpl, document.Right - 54 + document.LeftMargin, document.Bottom - 8);//调节模版显示的位置 //页眉显示的位置 ColumnText.ShowTextAligned(cb, Element.ALIGN_CENTER, header, document.Right - 140 + document.LeftMargin, document.Top + 10, 0); //页脚显示的位置 ColumnText.ShowTextAligned(cb, Element.ALIGN_CENTER, footer, document.Right - 60 + document.LeftMargin, document.Bottom - 10, 0); } } //重写 打开一个新页面时 public override void OnStartPage(PdfWriter writer, Document document) { if (PAGE_NUMBER) { writer.PageCount = writer.PageNumber-1; } } //关闭PDF文档时发生该事件 public override void OnCloseDocument(PdfWriter writer, Document document) { BaseFont bf = BaseFont.CreateFont(@"c:\windows\fonts\SIMYOU.TTF", BaseFont.IDENTITY_H, false); //调用的字体 tpl.BeginText(); tpl.SetFontAndSize(bf, 16);//生成的模版的字体、颜色 tpl.ShowText((writer.PageNumber - 2).ToString());//模版显示的内容 tpl.EndText(); tpl.ClosePath(); } //定义字体 颜色 public static Font BaseFontAndSize(string font_name, int size, int style, BaseColor baseColor) { BaseFont baseFont; BaseFont.AddToResourceSearch("iTextAsian.dll"); BaseFont.AddToResourceSearch("iTextAsianCmaps.dll"); Font font = null; string file_name = ""; int fontStyle; switch (font_name) { case "黑体": file_name = "SIMHEI.TTF"; break; case "华文中宋": file_name = "STZHONGS.TTF"; break; case "宋体": file_name = "SIMYOU.TTF"; break; default: file_name = "SIMYOU.TTF"; break; } baseFont = BaseFont.CreateFont(@"c:/windows/fonts/" + file_name, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);//字体:黑体 if (style < -1) { fontStyle = Font.NORMAL; } else { fontStyle = style; } font = new Font(baseFont, size, fontStyle, baseColor); return font; } //定义输出文本 public static Paragraph InsertTitleContent(string text) { iTextSharp.text.Font font = BaseFontAndSize("华文中宋", 16, Font.BOLD,BaseColor.BLACK); //BaseFont bfSun = BaseFont.CreateFont(@"c:\windows\fonts\STZHONGS.TTF", BaseFont.IDENTITY_H, false); //调用的字体 //Font font = new Font(bfSun, 15); Paragraph paragraph = new Paragraph(text, font);//新建一行 paragraph.Alignment = Element.ALIGN_CENTER;//居中 paragraph.SpacingBefore = 5; paragraph.SpacingAfter = 5; paragraph.SetLeading(1, 2);//每行间的间隔 return paragraph; } 好了,大功告成了!!!

‘叁’ 有没有关于c#生成pdf方面的书

Csharp宝典_电子工业出版社.pdf
http://www.400gb.com/file/10173874

Visual C#网络编程技术与实践.pdf
http://www.400gb.com/file/101738834

[Csharp高级编程(第6版)].(美)内格尔.扫描版.pdf
http://www.400gb.com/file/101737130

‘肆’ 如何用c语言创建pdf文档

pdf的格式 目前还是不公开的吧
用C语言 创建pdf 这个难度太大了。
基本上做不到的。

‘伍’ 数据库及pdf文件输出

【C++库】

PDF类库 PoDoFo
http://podofo.sourceforge.net/
PoDoFo 是一个用来操作 PDF 文件格式的 C++ 类库。它还包含一些小工具用来解析、修改和创建 PDF 文档。

Xpdf
http://www.foolabs.com/xpdf/download.html
Xpdf是一个开放源代码的PDF档案浏览器,Xpdf 可解码LZW压缩格式并阅读加密的PDF文件。

PDF生成工具 Poppler
http://poppler.freedesktop.org/
Poppler 是一个用来生成 PDF 的C++类库,从xpdf 继承而来。它使用了很多先进的类库例如 freetype 和 cairois 来达到更好的输出效果,同时也提供了一组命令行工具包。

JagPDF
http://www.jagpdf.com/
JagPDF 提供给 C/C++ 和 python 编程语言用来生成 PDF 文档的库。

libHaru
http://libharu.org/wiki/Downloads
开源的PDF库

CLibPDF
http://hpux.connect.org.uk/hppd/hpux/Shells/ClibPDF-2.02/
ClibPDF是C函数库,可以直接生成PDF文件, 不需要Adobe Acrobat等工具支持.

------------------------------------------------------------------------

java库】
PDF操作类库 iText
http://www.lowagie.com/iText/
iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。

PDFBox
http://www.pdfbox.org/
非常强悍的PDF生成和解析Java类库

jpedal
http://www.jpedal.org/
jpedal是开源纯Java的PDF文档解析库,可以用来读取PDF文档中的文字、图形。

JasperReports
http://jasperforge.org/plugins/project/project_home.php?group_id=102
JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports 支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发者最常用的报表工具。

Fourfive
http://sourceforge.net/projects/fourfive
Fourfive是一个领先的开源Web报表解决方案,使用XML作为它的配置文件。支持集群、负载平衡、动态发布、PDF, Excel, LDAP,图表、过滤器、排序、布局定制、门户、JasperReports、Velocity模板、兼容Internet Explorer, Netscape, Mozilla, Opera。

FOP
http://xmlgraphics.apache.org/fop/
FOP是由James Tauber发起的一个开源项目,原先的版本是利用xsl-fo将xml文件转换成pdf文件。但最新的版本它可以将xml文件转换成pdf,mif,pcl,txt等多种格式以及直接输出到打印机,并且支持使用SVG描述图形。

JFreeReport
http://sourceforge.net/projects/jfreereport/
JFreeReport是一个用来生成报表的Java类库。它为Java应用程序提供一个灵活的打印功能并支持输出到打印机和PDF, Excel, HTML和XHTML, PlainText, XML和CSV文件中。

YaHP
http://www.allcolor.org/YaHPConverter/
YaHP是一个能够把html文档转换成pdf文档的Java开源包。

PDFjet
http://pdfjet.com/os/edition.html
PDFjet是一个用于动态生成PDF文档的Java类库。支持绘制点、线、方框、圆、贝塞尔曲线(Bezier Curves) 、多边形、星形、复杂路径和形状。支持unicode,文本间距调整,嵌入超链接等。它同时有Java和.NET两个版本。

vPDF
http://sourceforge.net/projects/vpdf/
一个将RTF文档转成PDF文档的工具

【.NET组件】
--------------------------------------------------

iTextSharp
http://itextsharp.sourceforge.net/
iTextSharp 是用来生成 PDF 文档的 C# 组件

PDFsharp
http://www.pdfsharp.com/
PDFsharp is a C# library that easily creates PDF documents on the fly. The same GDI+ like drawing routines can be used to create PDF documents, draw on the screen, or send output to any printer. PDFsharp can also modify, merge, and split existing PDF files or incorporate pages from existing PDF files into new PDF documents.

Report.NET
http://report.sourceforge.net/
Report.NET 是一个功能强大且易用的用来生成 PDF 文档的 C# 组件
---------------------------------------------------------------------

【PHP】

Php Pdf Factory
http://sourceforge.net/projects/pdf-factory/
一个PHP的PDF操作库。

TCPDF
http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf
TCPDF是一个用于快速生成PDF文件的PHP5函数包。TCPDF基于FPDF进行扩展和改进。支持UTF-8,Unicode,HTML和XHTML。

HTML2PDF
http://html2fpdf.sourceforge.net/
HTML2PDF能够把一个HTML文本转换成一个打印机友好的PDF文件。这个PHP脚本构建在FPDFPHP脚本之上。

cPdfWriter
http://www.palos.ro/index.php?page=opensource_active
cPdfWriter是一个能够输出PDF文档的PHP5 class。基于TCPDF,FPDF和其它相关脚本。

FPDF
http://www.fpdf.org/
FPDF这个PHP Class允许你采用纯PHP(更确切地说就是不需要使用PDFlib)来生成PDF文件。它所具有的特点包括:可选择的unit大小,页面格式和页边 距;页眉和页脚管理;自动分页;自动换行与文本自动对齐;支持JPEG与PNG图片格式;支持着色和文件超链接;支持TrueType,Type1与 encoding;支持页面压缩。...

------------------------------------------------------------------------

【Python和Ruby】
Prawn
http://prawn.majesticseacreature.com/
Prawn: 用Ruby生成PDF更简捷

ReportLab
http://www.reportlab.org/
Reportlab是用python开发的生成pdf的工具包,它是一个开源软件。

PDF生成工具 pyPdf
PyPDF这是一个用于构建PDF的纯Python工具包

‘陆’ 如何使用office生成PDF文件

可以去下载相应的软件
1、PDF文件的识别:

1)文件可以直接识别的(以文本形式保存的PDF文件):安装acrobat 5 专业版,注意不是acrobat reader,直接另存为rtf文件(识别整个文件),或者选择工具栏上的文字选择按钮,然后选择文字区域,然后复制到word等中。

2)文件不能直接识别的(以图片形式保存的PDF文件):安装office2003,并装上office工具Microsoft Office Document Imaging(完全安装此工具),然后在打印机里面会增加Microsoft Office Document Image Writer打印机,然后将PDF文件打印到此打印机,选择打印形成的文件的保存位置,然后会自动形成一个MDI文件,并且自动用Microsoft Office Document Image打开此文件,然后选择“工具”菜单下的“使用ocr识别文本”,识别完成后,在选择“工具”下的,“将文本发送到word”,最后将把整个PDF文件识别输出到word文件中。

注意:Microsoft Office Document Image可以非常准确的全文件识别转化中文、英文、表格,但是无法将图形输出到word,而是把文件中的所有图形单独形成一个个独立的图片文件,放在相同位置的一个相同名称的文件夹中,因此可用snagit软件将图形打开,然后复制到word中。(所有的识别软件都不能很好的处理图形的识别问题,Microsoft Office Document Image的这种处理方法已经是非常好的解决这个问题了。)

3)加密的Pdf文件:先下载解密软件,解密后在参看1),2)
4)繁体pdf文件:用2)的方法识别到word后,用word中的“工具”--“语言”---“中文繁简转换”
2、让JPG上的文字转换到WORD中在日常工作中,我们可能会遇到需要把扫描后的表格或文章再重新修改或排版,然而大家都知道,扫描后的文件格式是图片格式.一般情况下只有高档点的扫描仪可以直接选择扫描成PDF后者WORD格式.但是如果我们只有普通的扫描仪,而又要做到修改扫描后的文档,现在我就来教大家怎么在条件限制下,达到我们的目的.
首先我们要准备好OFFICE 2003,然后打开OFFCIE工具中的Micosoft Office Document Scanning工具,设置完后,我们就可以在需要修改的图片上右击,选择打印,然后一直下一步,知道选择打印机时,选择Micosoft Office Document Image Writer,然后将图片打印到文件扩展名为mdi格式的图片格式.打开后选择菜单工具中的"将文本发送到WORD".就是这么简单方便

3、caj文件的识别:

1)局部文字识别:直接使用caj浏览器的ocr
2)全文件识别:打印到Microsoft Office Document Image Writer打印机,后面和上面的2)操作一样
3)博硕论文全文下载:在线阅读博硕论文,待可以看到最后一页后,不要关闭caj浏览器,到caj安装目录下cache中找到一个较大的文件,拷贝到其他位置即可。然后使用2)全部转化为word。

4、超星文件的识别:

1)局部文字识别:直接使用超星浏览器的ocr
2)全文件识别:打印到Microsoft Office Document Image Writer打印机,后面和上面的2)操作一样,要注意的是,超星打印功能有点区别,因为超星是目录和全文分开的,所以打印时,需要分别把目录和正文识别到word中,在合并到一起。打印时要填入打印页码从1到最后一页,不要选择打印全部。此外在打印选项中,还要将页面比例设成真实大小,而不是整宽。注意:识别速度比其他格式要慢很多,请保持耐心,但是最后当你看到轻松的生成全本书的word版本时,你会欣喜若狂的,呵呵。我的试验结果是一本280页的书,识别需要几分钟的时间。

3)超星相对比较麻烦一些,如果还有问题,可以先把超星打印成完整的pdf文件,然后在用1、的方法转成word

5、其他情况下的识别:

使用snagit软件将任何形式的文字可以变成图片,例如使用snagit将屏幕拷贝成图片,然后右键点击图片文件,用microsoft Office Document Image打开图形,其他和2)一样。

注意:其他的各种识别软件请不要在用,因为要么只能识别中文,要么只能识别英文,要么不能识别整个文件,要么不能识别屏幕拷贝图像,要么识别误差很大,要么不能识别表格,要么需要注册,要么识别速度很慢,要么使用不便(和word结合不紧),这些软件包括:紫光ocr,万方pdfocr,尚书,汉王,ScanSoft PDF Converter,pdf2word,以及各种被推荐的软件等等,我都装过,现在都像垃圾一样删除了。只要安装了acrobat 专业版,snagit,office2003,现在你可以完美的做任何事,最重要的是这几个软件很好得到。

针对一些问题的补充:
经过一些试验,发现microsoft Office Document Image 存在一些不稳定的问题,例如在用caj打印到Microsoft Office Document Image Writer打印机时,发现用caj5.5版本比较快,(caj5.5不能加升级补丁),而caj5.0有时出现假死机。
另外页面显示大时,转化的识别率较高。
如果页数多的文件,包括超星,如果有问题,可以分多次转化。

再次补充:
1、由于虚拟打印到Microsoft Office Document Image Writer 比较慢,并且形成的虚拟文件很大,1本200多页的书大约是60M,因此会严重影响机器的运行速度和C盘空间以及内存空间,建议配置好的机器一次转化不要超过200页,配置差的不要超过100页,同时打印时在右下角系统栏中会出现打印机图,你可以双击,看到打印任务的进度,以免以为死机了。另外转化完成后请删除c:\windows\temp目录下的虚拟打印文件,否则你的c盘很快会被用光。

2、建议如果发生打印到Microsoft Office Document Image Writer很慢或者假死的情况,可以先打印到snagit虚拟打印机,会自动生成tiff文件,速度比Microsoft Office Document Image Writer快,然后在snagit中,选择打印机为Microsoft Office Document Image Writer打印机,(相当于再打印到Microsoft Office Document Image Writer打印机),然后选择snagit---outputs下的printer,然后选择snagit----file----finish output,即可生成msi文件,其他一样。

‘柒’ PDF电子书制作软件

这个不错的PDF生成器(PDFCreator)nbsp;V0.9.3c1.4.0nbsp;简体中文版下载地址:http://www.znzxz.cn/soft/sort03/sort059/down-1950.html

‘捌’ 有什么方法生成pdf文件,c

试试pdf+这个软件吧,不知道会不会也生成,我反正没有在手机上面看过pdf。

‘玖’ PDF文件是怎样制作的

使用Adobe公司的Acrobat,注意不是阅读器(reader)。

‘拾’ 用photoshop怎么制作PDF文件

制作方法如下:

1、打开PS主程序;

2、在文件菜单中选择“自动--PDF演示文稿”,如图;

6、配置好点击“存储PDF”即可输出PDF文档。

阅读全文

与cpdf生成相关的资料

热点内容
奇门遁甲完整版pdf 浏览:898
app软件怎么用的 浏览:802
电子书pdf购买 浏览:193
浪潮服务器如何做系统 浏览:111
冒险岛img格式加密 浏览:596
我的世界手游如何复制命令 浏览:659
天刀自动弹琴脚本源码 浏览:969
打开其它app微信怎么收不到 浏览:447
安卓游戏耳机怎么戴 浏览:18
不越狱怎么去除app广告 浏览:178
ipadminipdf阅读 浏览:506
文件夹无限制压缩会不会降低内存 浏览:412
荣耀怎样创建文件夹 浏览:631
如何用本机登陆远程服务器地址 浏览:682
黄小鸭解压文具盒 浏览:672
女程序员的转行方法 浏览:884
东风启辰车联网安装文件夹 浏览:526
华为怎么设置app时间锁 浏览:663
后宫app视频怎么下载 浏览:528
如何把图片转换从PDF格式 浏览:261