這篇文章我將向大家演示如何以編程的方式在PDF文檔中創建一個網格,並將圖片插入特定的網格中。
網上有一些類似的解決方法,在這里我選擇了一個免費版的PDF組件。安裝控件后,創建新項目,添加安裝目錄下的dll文件作為項目的引用以及命名空間,如下:
using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Grid;
接下來是詳細步驟及代碼片段:
步驟1: 首先創建一個PDF文檔,並添加一個新頁面。
PdfDocument doc = new PdfDocument(); PdfPageBase page = doc.Pages.Add();
步驟2:創建一個一行兩列的網格。
PdfGrid grid = new PdfGrid(); PdfGridRow row = grid.Rows.Add(); grid.Columns.Add(2);
步驟3:設置單元格邊框與填充內容的間距。
grid.Style.CellPadding = new PdfPaddings(1, 1, 1, 1);
步驟4:設置列寬。
float width = page.Canvas.ClientSize.Width - (grid.Columns.Count + 1); grid.Columns[0].Width = width * 0.1f; grid.Columns[1].Width = width * 0.1f;
步驟5:加載圖片。
PdfGridCellTextAndStyleList lst = new PdfGridCellTextAndStyleList(); PdfGridCellTextAndStyle textAndStyle = new PdfGridCellTextAndStyle(); textAndStyle.Image=PdfImage.FromFile(@"C:\Users\Administrator\Pictures\448a5ba8f8851709a1f53e.jpg");
步驟6:設置圖片的大小,將其插入第一個單元格。
textAndStyle.ImageSize = new SizeF(50, 50); lst.List.Add(textAndStyle); row.Cells[0].Value = lst;
步驟7:在頁面特定位置繪制PDF網格。
PdfLayoutResult result = grid.Draw(page, new PointF(10, 30));
步驟8:保存並運行PDF文件。
doc.SaveToFile(outputFile, FileFormat.PDF); System.Diagnostics.Process.Start(outputFile);
效果圖:
這個Spire. PDF組件基於.NET的辦公軟件庫,還有其他豐富的功能。所以對於有辦公開發需求的朋友,感興趣的話可以在官網參考在線教程。
全部代碼:
using System;
using System.Drawing;
using System.Windows.Forms;
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Grid;
namespace Insert_an_Image_to_PDF_Grid_Cell
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string outputFile ="output.pdf";
//新建一個PDF文檔
PdfDocument doc = new PdfDocument();
//添加頁面
PdfPageBase page = doc.Pages.Add();
//創建PDF網格
PdfGrid grid = new PdfGrid();
//設置單元格邊框與填充內容的間距
grid.Style.CellPadding = new PdfPaddings(1, 1, 1, 1);
//添加行
PdfGridRow row = grid.Rows.Add();
//添加列
grid.Columns.Add(2);
float width = page.Canvas.ClientSize.Width - (grid.Columns.Count + 1);
//設置列寬
grid.Columns[0].Width = width * 0.1f;
grid.Columns[1].Width = width * 0.1f;
//加載圖片
PdfGridCellTextAndStyleList lst = new PdfGridCellTextAndStyleList();
PdfGridCellTextAndStyle textAndStyle = new PdfGridCellTextAndStyle();
textAndStyle.Image=PdfImage.FromFile (@"C:\Users\Administrator\Pictures\448a5ba8f8851709a1f53e.jpg");
//設置圖片大小
textAndStyle.ImageSize = new SizeF(50, 50);
lst.List.Add(textAndStyle);
//在第一個單元格添加圖片
row.Cells[0].Value = lst;
//在頁面特定位置繪制PDF網格
PdfLayoutResult result = grid.Draw(page, new PointF(10, 30));
//保存並運行PDF文件
doc.SaveToFile(outputFile, FileFormat.PDF);
System.Diagnostics.Process.Start(outputFile);
}
}
}
