C 利用PdfSharp生成Pdf檔案的示例

2022-09-26 01:18:14 字數 3936 閱讀 3140

pdfsharp一款開源的用於建立,操作pdf文件的.net類庫,本文以乙個簡單的小例子,簡述如何通過pdfsharp進行建立pdf文件,僅供學習分享使用,如有不足之處,還請指正。

在生成pdf文件過程中,主要知識點如下:

在本例中,主要是將頁面內容寫入pdf檔案中,頁面如下所示:

生成的pdf檔案,如下所示:

在本例中,核心**主要包括如下幾個部分:

具體**,如下所示:

///

/// 生成pdf

///

/// 程式設計客棧">

///

///

public bool generatepdf(string filepath, pdfbo bo) ]",bo.private), font, xbrushes.black, new xrect(cur_x, cur_y, 100, 20), xstringformats.centerleft);

//緩級

cur_x = cur_x + 100;

gfx.drawstring(string.format("緩級", bo.speed), font, xbrushes.black, new xrect(cur_x, cur_y, 100, 20), xstringformats.centerlwww.cppcns.comeft);

//簽發人

cur_x = cur_x + 100;

gfx.drawstring(string.format("簽發人:", bo.person), font, xbrushes.black, new xrect(cur_x, cur_y, 100, 20), xstringformats.centerleft);

//一條橫線

cur_x = 0 + margin_left_right;

cur_y = cur_y + 20;

xpen pen = new xpen(xcolor.fromknowncolor(xkn程式設計客棧owncolor.black), 1);

gfx.drawline(pen, cur_x, cur_y, page.width-cur_x, cur_y+2);

//標題2

font = new xfont("華文宋體", 20, xfontstyle.regular);

cur_y = cur_y + 10;

gfx.drawstring(bo.head2, font, xbrushes.black, new xrect(cur_x, cur_y, page.width-2*cur_x, 40), xstringformats.center);

//抬頭

font = new xfont("華文宋體", 15, xfontstyle.bold);

cur_y = cur_y + 40;

gfx.drawstring(bo.title, font, xbrushes.black, new xrect(cur_x, cur_y, page.width, 40), xstringformats.centerleft);

//正文 ,自動換行

cur_y = cur_y + 40;

xtextformatter tf = new xtextformatter(gfx);

font = new xfont("華文宋體", 12, xfontstyle.regular);

//測量當前內容下,一行可以多少個漢字

int cnt = 0;

int height = 0;

for (int i = 0; i < bo.content.length; i++)

}cnt = cnt > 0 ? cnt : bo.content.length;//每一行多少漢字

string arrcontent = bo.content.split('\n');

string new_content = "";

int total_lines = 0;

foreach (string content in arrcontent) \n",content);

total_lines++;

}else

new_content += string.format("\n", tmpcontent);}}

int num = new_content.length - new_content.replace("\r", "").length;

//計算矩形

xrect rect = new xrect(cur_x, cur_y, page.width - 2 * cur_x, (total_lines+num)*(height+2));

tf.drawstring(new_content, font, xbrushes.black, rect, xstringformats.topleft);

//主題詞

cur_y = cur_y + (total_lines + num) * (height + 2) + 20;

font = new xfont("華文宋體", 12, xfontstyle.bold);

gfx.drawstring(string.format("主題詞:",bo.keyword), font, xbrushes.black, new xrect(cur_x, cur_y, page.width, 40), xstringformats.centerleft);

//再加一條橫線

cur_y = cur_y + 40;

gfx.drawline(pen, cur_x, cur_y, page.width - cur_x, cur_y + 2);

cur_y = cur_y + 2;

font = new xfont("華文宋體", 10, xfontstyle.regular);

gfx.drawstring(string.format("",bo.company, bo.dept), font, xbrushes.black, new xrect(cur_x, cur_y, page.width-2*cur_x, 40), xstringformats.centerleft);

gfx.drawstring(datetime.now.tostring("yyyy 年 mm 月 dd 日 印發"), font, xbrushes.black, new xrect(cur_x, cur_y, page.width-2*cur_x, 40), xstringformats.centerright);

//水印開始

font = new xfont("華文宋體", 20, xfontstyle.bolditalic);

// 計算長度

var size = gfx.measurestring(bo.watermark, font);

// 定義旋轉中心

gfx.translatetransform(page.width / 2, page.height / 2);

gfx.rotatetransform(-math.atan(page.height / page.width) * 180 / math.pi);

gfx.translatetransform(-page.width / 2, -page.height / 2);

// 字元樣式

var format = new xstringformat();

format.alignment = xstringalignment.near;

format.linealignment = xlinealignment.near;

//畫刷

xbrush brush = new xsolidbrus程式設計客棧h(xcolor.fromargb(128, 255, 0, 0));

程式設計客棧 for (int i = 0; i < 3; i++)

//水印結束

//6. 儲存文件

document.s**e(filepath);

return true;

}

C 利用ReportViewer生成報表

本文主要是利用微軟自帶的控制項reportviewer進行報表設計的小例子,僅供學習分享使用,如有不足之處,還請指正。涉及知識點 效果圖 如下 核心 1 2 設定報表 3 4 private void setreport 5 16 dt.rows.add new object 17 dt.rows....

Python利用PyPDF2快速拆分PDF文件

目錄 人生苦短,快學python 因為這句口號,我也加入了學習python的浩浩大軍,但由於python真的是可以做的事情太多了,一時迷了眼,不知道自己應該去專攻哪個方向。經過多方向試探,我還是選擇了廣而不深的web開發,python的web開發自然離不開大名鼎鼎的django,有一次突發奇想,了d...

pd生成不帶引號,生成表之前刪除表

一 pd中如何使其生成的sql語句不帶雙引號的方法 1.開啟選單 database edit current dbms 然後翻到首頁。2.開啟樹 script sql format casesensitivityusingquote,選中 no 單選項。3.支援一切ok 在設計db2時,對於欄位名命...