我工作的一個網站,動態創建PDF文件上。PDF控件呈現文本不同
我一直在玩兩種不同的pdf控件 - wpcubed和abcpdf,並且很驚訝地發現它們都呈現不同的文字。
wpCubed:
abcpdf:
它們都採用宋體25pt大膽,所以我希望他們看起來完全相同。任何人都可以解釋他們爲什麼沒有。
我工作的一個網站,動態創建PDF文件上。PDF控件呈現文本不同
我一直在玩兩種不同的pdf控件 - wpcubed和abcpdf,並且很驚訝地發現它們都呈現不同的文字。
wpCubed:
abcpdf:
它們都採用宋體25pt大膽,所以我希望他們看起來完全相同。任何人都可以解釋他們爲什麼沒有。
幾種不同的可能性:
如果無法訪問您的PDF輸出,它不可能是肯定的。
話雖如此,這幾個字符的長寬比看起來不一樣。比較兩個字符串中「測試」中的「e」。 abcpdf中的「e」看起來比wbCubed中的「e」更寬。這不是字距,連字或縮放級別。它甚至可能不是路徑與字體。
所以可以看到你們的PDF文件?
下面是wpcubed
BT 1 0 0 1 0 0 Tm /F1 22.500 Tf 0 Ts 0 g -2.667 Tw 452 -18 Td(This is a test)Tj ET
內容流在這裏從abcpdf的內容流:
BT 0 0 0 rg /Fabc5 25 Tf 1 0 0 1 444.825 822 Tm (This is a test) Tj 0.25 0 Td (This is a test) Tj 0.25 0 Td (This is a test) Tj 0.25 0 Td (This is a test) Tj ET
嘿: 「窮人的大膽」。讓我檢查字體資源...是的。
wpcubed使用 「宋體,黑體」。 abcpdf正在使用「ArialMT」,並且使用微小的偏移量多次打印相同的單詞。
你可能會說服abcpdf使用「Arial,bold」,在這種情況下,我希望兩個輸出看起來完全相同。我之前沒有看過abcpdf,但它可能是可能的。
我剛剛檢查了他們的文檔,它看起來像XFont.findFamily("Arial")
將是要走的路。你會檢查一個返回的XFonts
的數組是否真的是Arial Bold,而不是一些具有正常Arial的人造粗體技術。你可能想看看XFont.names
而不是XFont.name
。
這個特殊的「讓它看起來大膽」的技巧有一個嚴重的缺點:複製粘貼將獲取文本的所有4個實例。更友好的方法是根據字體的一小部分點的大小(iText使用1/30)來定義線條粗細,並且都是筆畫和填充字體。字體通常只是填充,所以該行的粗細會添加到字體的外部,沒有額外的單詞可以讓某個人選擇/屏幕閱讀文本。
喲。屏幕閱讀器的盲人必須討厭這一點。
在呈現文字時,他們可能會使用不同的縮放級別/ dpi。 – iPDFdev 2011-04-05 16:33:14
pdf查看器的縮放級別絕對相同。我確定我檢查了這一點。 – Urbycoz 2011-04-06 07:32:44
縮放級別實際上取決於用於100%縮放的參考dpi。例如,Adobe Reader可以使用110 dpi(或其他可以在首選項中設置的自定義值)作爲100%縮放的參考,因此Adobe Reader的100%縮放不會像Foxit的100%縮放那樣相同。如果你可以在某個地方發佈文件,我可以看看它。我們公司還開發PDF Viewer,PDFView4NET(http://www.o2sol.com/pdfview4net/overview.htm),歡迎您來看看它。 – iPDFdev 2011-04-06 07:56:32