C 在PDF文件中應用多種不同字型

2022-09-19 08:42:11 字數 3354 閱讀 3648

在pdf文件中,可繪製不同字型樣式、不同語言的文字,可通過使用standard字型、truetype字型、cjk字型或者自定義(私有)等字型型別。下面通過c#程式**來展示如何實現使用以上型別的字型來繪製文字。

本次程式中引入的是spire.pdf.dll,引入方法如下:

可以在visual studio中開啟「解決方案資源管理器」,滑鼠右鍵點選「引用」,「管理nuget包」,然後搜尋「free spire.pdf」,點選「安裝」。

也可以將以下內容複製到pm控制台安裝:

install-package freespire.pdf -version 7.8.9

c#

using

spire.pdf;

using

spire.pdf.graphics;

using

system.drawing;

namespace}}

vb.net

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中有,...