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時,對於欄位名命...