濟(jì)南專門做網(wǎng)站的公司有哪些湖南專業(yè)關(guān)鍵詞優(yōu)化
搜索了這么多有關(guān) PDF 合并的信息后,很容易發(fā)現(xiàn),無論您在線合并 PDF 文件還是使用 C#/VB.NET 來實(shí)現(xiàn)此任務(wù),您都無法逃避對 PDF 文件安全等一些重要問題的擔(dān)憂,因此需要花費(fèi)多少時(shí)間或者合并后的文件是否支持打印頁碼等等。不過,只要來到這里,這些煩惱就不會出現(xiàn)。本節(jié)將專門向您介紹一種安全的解決方案,通過 .NET PDF 組件 Spire.PDF for .NET,使用 C#、VB.NET 將 PDF 文件合并為一個(gè)。
Spire.PDF for .NET?是一款獨(dú)立 PDF 控件,用于 .NET 程序中創(chuàng)建、編輯和操作 PDF 文檔。使用 Spire.PDF 類庫,開發(fā)人員可以新建一個(gè) PDF 文檔或者對現(xiàn)有的 PDF 文檔進(jìn)行處理,且無需安裝 Adobe Acrobat。
E-iceblue?功能類庫Spire 系列文檔處理組件均由中國本土團(tuán)隊(duì)研發(fā),不依賴第三方軟件,不受其他國家的技術(shù)或法律法規(guī)限制,同時(shí)適配國產(chǎn)操作系統(tǒng)如中科方德、中標(biāo)麒麟等,兼容國產(chǎn)文檔處理軟件 WPS(如 .wps/.et/.dps 等格式(qun:767755948)
Spire.PDF for.net下載? ?Spire.PDF for java下載
Spire.PDF for .NET使用 C# 從頭開始構(gòu)建,使程序員和開發(fā)人員能夠在 .NET 應(yīng)用程序中創(chuàng)建、讀取、編寫和操作 PDF 文檔,而無需使用 Adobe Acrobat 或任何外部庫。使用Spire.PDF for .NET,您不僅可以快速合并PDF文件,還可以打印帶有頁碼的PDF頁面。現(xiàn)在請預(yù)覽下面的有效截圖:
在執(zhí)行以下步驟之前,請下載Spire.PDF for .NET并將其安裝在系統(tǒng)上。
步驟1:您可以使用String數(shù)組保存將要合并為一個(gè)PDF的三個(gè)PDF文件的名稱并演示Spire.Pdf.PdfDocument數(shù)組。然后,加載三個(gè) PDF 文件并選擇第一個(gè)PdfDocument,以便將第二個(gè)和第三個(gè) PDF 文件合并到其中。為了將第二個(gè) PDF 文件中的所有頁面導(dǎo)入到第一個(gè) PDF 文件中,您需要調(diào)用方法public void AppendPage(PdfDocument doc)。另外,通過調(diào)用另一個(gè)方法public PdfPageBase InsertPage(PdfDocument doc, int pageIndex),可以將第三個(gè) PDF 文件的每一頁導(dǎo)入到第一個(gè) 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 magin 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:在第一個(gè)PDF文件中繪制頁碼。在此步驟中,您可以通過調(diào)用 Spire.Pdf.Graphics 類來設(shè)置 PDF 頁碼邊距。 pdf頁邊距。然后,調(diào)用自定義方法DrawPageNumber(PdfPageCollection pages, PdfMargins margin, int startNumber, int pageCount ) 在第一個(gè) PDF 的每個(gè)頁面的底部添加頁碼。詳細(xì)代碼請看下面
[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
當(dāng)您乍一看時(shí),PDF合并代碼可能會很長,實(shí)際上,如果您不需要在合并的PDF中添加頁碼,則應(yīng)該避免第二步。然而,在很多情況下,頁碼為用戶閱讀PDF以及打印PDF帶來了很大的便利。 Spire.PDF for .NET 可以滿足您合并 PDF 文件和在合并的 PDF 文件中添加頁碼的需求。
以上便是如何查找并刪除 PDF 中的空白頁,如果您有其他問題也可以繼續(xù)瀏覽本系列文章,獲取相關(guān)教程~