没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:胡涛|2024-04-01 10:23:12.040|阅读 46 次
概述:本节将专门向您介绍一种安全的解决方案,通过 .NET PDF 组件 Spire.PDF for .NET,使用 C#、VB.NET 将 PDF 文件合并为一个。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
搜索了这么多有关 PDF 合并的信息后,很容易发现,无论您在线合并 PDF 文件还是使用 C#/VB.NET 来实现此任务,您都无法逃避对 PDF 文件安全等一些重要问题的担忧,因此需要花费多少时间或者合并后的文件是否支持打印页码等等。不过,只要来到这里,这些烦恼就不会出现。本节将专门向您介绍一种安全的解决方案,通过 .NET PDF 组件 Spire.PDF for .NET,使用 C#、VB.NET 将 PDF 文件合并为一个。
Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。
E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式
Spire.PDF for.net下载 Spire.PDF for java下载
Spire.PDF for .NET使用 C# 从头开始构建,使程序员和开发人员能够在 .NET 应用程序中创建、读取、编写和操作 PDF 文档,而无需使用 Adobe Acrobat 或任何外部库。使用Spire.PDF for .NET,您不仅可以快速合并PDF文件,还可以打印带有页码的PDF页面。现在请预览下面的有效截图:
在执行以下步骤之前,请下载Spire.PDF for .NET并将其安装在系统上。
步骤1:您可以使用String数组保存将要合并为一个PDF的三个PDF文件的名称并演示Spire.Pdf.PdfDocument数组。然后,加载三个 PDF 文件并选择第一个PdfDocument,以便将第二个和第三个 PDF 文件合并到其中。为了将第二个 PDF 文件中的所有页面导入到第一个 PDF 文件中,您需要调用方法public void AppendPage(PdfDocument doc)。另外,通过调用另一个方法public PdfPageBase InsertPage(PdfDocument doc, int pageIndex),可以将第三个 PDF 文件的每一页导入到第一个 PDF 文件中。
[C#]
private void button1_Click(object sender, EventArgs e) { //pdf document list String[] files = new String[] { @"..\PDFmerge0.pdf", @"..\ PDFmerge1.pdf", @"..\ PDFmerge2.pdf" }; //open pdf documents PdfDocument[] docs = new PdfDocument[files.Length]; for (int i = 0; i < files.Length; i++) { docs[i] = new PdfDocument(files[i]); } //append document docs[0].AppendPage(docs[1]); //import PDF pages for (int i = 0; i < docs[2].Pages.Count; i = i + 2) { docs[0].InsertPage(docs[2], i); }
【VB.NET】
//set PDF margin PdfUnitConvertor unitCvtr = new PdfUnitConvertor(); PdfMargins margin = new PdfMargins(); margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Bottom = margin.Top; margin.Left = unitCvtr.ConvertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Right = margin.Left; this.DrawPageNumber(docs[0].Pages, margin, 1, docs[0].Pages.Count); private void DrawPageNumber(PdfPageCollection pages, PdfMargins margin, int startNumber, int pageCount) { foreach (PdfPageBase page in pages) { page.Canvas.SetTransparency(0.5f); PdfBrush brush = PdfBrushes.Black; PdfPen pen = new PdfPen(brush, 0.75f); PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 9f, System.Drawing.FontStyle.Italic), true); PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right); format.MeasureTrailingSpaces = true; float space = font.Height * 0.75f; float x = margin.Left; float width = page.Canvas.ClientSize.Width - margin.Left - margin.Right; float y = page.Canvas.ClientSize.Height - margin.Bottom + space; page.Canvas.DrawLine(pen, x, y, x + width, y); y = y + 1; String numberLabel = String.Format("{0} of {1}", startNumber++, pageCount); page.Canvas.DrawString(numberLabel, font, brush, x + width, y, format); page.Canvas.SetTransparency(1); } }
步骤2:在第一个PDF文件中绘制页码。在此步骤中,您可以通过调用 Spire.Pdf.Graphics 类来设置 PDF 页码边距。 pdf页边距。然后,调用自定义方法DrawPageNumber(PdfPageCollection pages, PdfMargins margin, int startNumber, int pageCount ) 在第一个 PDF 的每个页面的底部添加页码。详细代码请看下面
[C#]
//set PDF margin PdfUnitConvertor unitCvtr = new PdfUnitConvertor(); PdfMargins margin = new PdfMargins(); margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Bottom = margin.Top; margin.Left = unitCvtr.ConvertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Right = margin.Left; this.DrawPageNumber(docs[0].Pages, margin, 1, docs[0].Pages.Count); private void DrawPageNumber(PdfPageCollection pages, PdfMargins margin, int startNumber, int pageCount) { foreach (PdfPageBase page in pages) { page.Canvas.SetTransparency(0.5f); PdfBrush brush = PdfBrushes.Black; PdfPen pen = new PdfPen(brush, 0.75f); PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 9f, System.Drawing.FontStyle.Italic), true); PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right); format.MeasureTrailingSpaces = true; float space = font.Height * 0.75f; float x = margin.Left; float width = page.Canvas.ClientSize.Width - margin.Left - margin.Right; float y = page.Canvas.ClientSize.Height - margin.Bottom + space; page.Canvas.DrawLine(pen, x, y, x + width, y); y = y + 1; String numberLabel = String.Format("{0} of {1}", startNumber++, pageCount); page.Canvas.DrawString(numberLabel, font, brush, x + width, y, format); page.Canvas.SetTransparency(1); } }
[VB.NET]
'set PDF margin Dim unitCvtr As New PdfUnitConvertor() Dim margin As New PdfMargins() margin.Top = unitCvtr.ConvertUnits(2.54F, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point) margin.Bottom = margin.Top margin.Left = unitCvtr.ConvertUnits(3.17F, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point) margin.Right = margin.Left Me.DrawPageNumber(docs(0).Pages, margin, 1, docs(0).Pages.Count) Private Sub DrawPageNumber(pages As PdfPageCollection, margin As PdfMargins, startNumber As Integer, pageCount As Integer) For Each page As PdfPageBase In pages page.Canvas.SetTransparency(0.5F) Dim brush As PdfBrush = PdfBrushes.Black Dim pen As New PdfPen(brush, 0.75F) Dim font As New PdfTrueTypeFont(New Font("Arial", 9F, System.Drawing.FontStyle.Italic), True) Dim format As New PdfStringFormat(PdfTextAlignment.Right) format.MeasureTrailingSpaces = True Dim space As Single = font.Height * 0.75F Dim x As Single = margin.Left Dim width As Single = page.Canvas.ClientSize.Width - margin.Left - margin.Right Dim y As Single = page.Canvas.ClientSize.Height - margin.Bottom + space page.Canvas.DrawLine(pen, x, y, x + width, y) y = y + 1 Dim numberLabel As [String] = [String].Format("{0} of {1}", System.Math.Max(System.Threading.Interlocked.Increment(startNumber),startNumber - 1), pageCount) page.Canvas.DrawString(numberLabel, font, brush, x + width, y, format) page.Canvas.SetTransparency(1) Next End Sub
当您乍一看时,PDF合并代码可能会很长,实际上,如果您不需要在合并的PDF中添加页码,则应该避免第二步。然而,在很多情况下,页码为用户阅读PDF以及打印PDF带来了很大的便利。 Spire.PDF for .NET 可以满足您合并 PDF 文件和在合并的 PDF 文件中添加页码的需求。
以上便是如何查找并删除 PDF 中的空白页,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,你还可以给我留言或者加入我们的官方技术交流群。
欢迎下载|体验更多E-iceblue产品
获取更多信息请咨询 ;技术交流Q群(767755948)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@obta.cn
在自动化GUI测试领域,面对日益复杂的动态Web界面和频繁变化的软件控件,传统的单一对象识别技术和脆弱易碎的测试脚本已成为效率提升的主要瓶颈。Web测试工具TestComplete通过完整的对象识别引擎以及AI驱动的自我修复来降低维护成本,保障大规模自动化测试套件的长期可靠运行。本文将介绍这些技术以及其在实际场景中的应用。
还在为脆弱的测试环境、强外部依赖和低效的测试复用拖慢交付而头疼?尤其在银行、医疗、制造等关键领域,传统的端到端测试常因环境不稳、接口难模拟、用例难共享而举步维艰。灰盒级SOA测试工具Parasoft SOAtest以可视化编排简化复杂测试流程,用环境虚拟化消除外部依赖,更通过组件复用实现跨国测试资产共享,让端到端测试从被动排查转变为主动防御。
作为面向工程软件开发者的高级渲染解决方案,HOOPS Luminate将先进的实时渲染与物理级光线追踪完美结合,助力开发团队打造超越预期的视觉体验与交互性能。
HOOPS SDK产品组合为船舶及海工软件提供从CAD数据访问、可视化到跨平台协作的全流程支持。
专业的.NET Office套件,涵盖office文档创建、编辑、转换、管理和OCR内容识别等操作
Spire.Doc for .NETSpire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@obta.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢