在pdf文件中,可繪製不同字型樣式、不同語言的文字,可通過使用standard字型、truetype字型、cjk字型或者自定義(私有)等字型型別。下面通過c#程式**來展示如何實現使用以上型別的字型來繪製文字。
本次程式中引入的是spire.pdf.dll,引入方法如下:
可以在visual studio中開啟「解決方案資源管理器」,滑鼠右鍵點選「引用」,「管理nuget包」,然後搜尋「free spire.pdf」,點選「安裝」。
也可以將以下內容複製到pm控制台安裝:
install-package freespire.pdf -version 7.8.9
c#
usingvb.netspire.pdf;
using
spire.pdf.graphics;
using
system.drawing;
namespace}}
imports字型繪製效果:spire.pdf
imports
spire.pdf.graphics
imports
system.drawing
namespace
class
program
private
shared
sub main(args as
string
())
'建立pdfdocument物件
dim pdf as
newpdfdocument()
'新增一頁
dim page as pdfpagebase =pdf.pages.add()
'初始化y座標
dim y as
single = 30
'使用standard字型繪製文字
dim standardfont as
newpdffont(pdffontfamily.helvetica, 14f)
page.canvas.drawstring(
"standard font - helvetica
", standardfont, pdfbrushes.black, 0
, y)
standardfont = new
pdffont(pdffontfamily.timesroman, 14f)
page.canvas.drawstring(
"standard font - times_roman
", standardfont, pdfbrushes.black, 0, (inlineassignhelper(y, y + 16
))) standardfont = new
pdffont(pdffontfamily.courier, 14f)
page.canvas.drawstring(
"standard font - courier
", standardfont, pdfbrushes.black, 0, (inlineassignhelper(y, y + 16
)))
'使用true type字型繪製文字
dim truetypefont as
new pdftruetypefont(new font("
arial
", 12f), true
) page.canvas.drawstring(
"truetype font - arial
", truetypefont, pdfbrushes.blue, 0, (inlineassignhelper(y, y +30f)))
'//使用私有字型繪製文字
'string fontfilename = "c:\\users\\administrator\\desktop\\fontfile.ttf";
'truetypefont = new pdftruetypefont(fontfilename, 14f);
'page.canvas.drawstring("private font: 私有字型", truetypefont, pdfbrushes.darkgreen, 0, (y = y + 30f));''
使用cjk字型繪製文字
dim cjkfont as
newpdfcjkstandardfont(pdfcjkfontfamily.monotypeheimedium, 14f)
page.canvas.drawstring(
"你 好
", cjkfont, pdfbrushes.deeppink, 0, (inlineassignhelper(y, y +30f)))
cjkfont = new
pdfcjkstandardfont(pdfcjkfontfamily.hanyangsystemsgothicmedium, 14f)
page.canvas.drawstring(
"こんにちは
", cjkfont, pdfbrushes.orangered, 0, (inlineassignhelper(y, y +16f)))
cjkfont = new
pdfcjkstandardfont(pdfcjkfontfamily.hanyangsystemsshinmyeongjomedium, 14f)
page.canvas.drawstring(
"안녕하세요
", cjkfont, pdfbrushes.purple, 0, (inlineassignhelper(y, y +16f)))
'儲存文件
pdf.s**etofile("
", fileformat.pdf)
system.diagnostics.process.start(""
)
end sub
private
shared
function inlineassignhelper(of t)(byref target as t, value as t) as
t target =value
return
value
end function
end class
end namespace
C 中PDF文件操作類
using system.io using itextsharp.text using itextsharp.text.pdf namespace dotnet.utilities 建構函式 頁面大小 如 a4 public pdfoperation string type 建構函式 頁面大小 如 ...
NMF在文件聚類中的應用
1 給定乙個文件語料庫,首先構造乙個詞 文件矩陣v,其中v的i列代表文件di的加權詞頻向量。2 使用nmf方法分解矩陣v,得到分解矩陣w,h 3 歸一化w,h。4 使用矩陣h來決定每個文件的歸類。那個文件di的類標為 x,當 當然,如果想對單詞進行聚類,我們可以通過w矩陣來確定。對於單詞ti,分配的...
在C 中應用HOOK
鉤子 hook 是windows 訊息處理機制的乙個平台 應用程式可以在上面設定子程以監視指定視窗的某種訊息,而且所監視的視窗可以是其他程序所建立的。當訊息到達後,在目標視窗處理函式之前處理它。鉤子機制允許應用程式截獲處理 window 訊息或特定事件。關於hook的詳細介紹,在微軟的msdn中有,...