2
A
回答
7
最後我解決了這個問題。 下面的代碼將打開一個現有的PDF文件,並將按照我的預期將其所有字體更改爲「盲文」。
private static void ChangeFont()
{
string strFile = @"E:\\xyz.pdf";
string OutputFile = @"E:\\xyz1.pdf";
PdfReader pdfReader = new PdfReader(strFile);
//Get first page,Generally we get font information on first page,however we can loop throw pages e.g for(int i=0;i<=pdfReader.NumberOfPages;i++)
PdfDictionary cpage = pdfReader.GetPageN(1);
if (cpage == null)
return;
PdfDictionary dictFonts = cpage.GetAsDict(PdfName.RESOURCES).GetAsDict(PdfName.FONT);
if (dictFonts != null)
{
foreach (var font in dictFonts)
{
var dictFontInfo = dictFonts.GetAsDict(font.Key);
if (dictFontInfo != null)
{
foreach (var f in dictFontInfo)
{
//Get the font name-optional code
var baseFont = dictFontInfo.Get(PdfName.BASEFONT);
string strFontName = System.Text.Encoding.ASCII.GetString(baseFont.GetBytes(), 0,
baseFont.Length);
//
//Remove the current font
dictFontInfo.Remove(PdfName.BASEFONT);
//Set new font eg. Braille, Areal etc
dictFontInfo.Put(PdfName.BASEFONT, new PdfString("Braille"));
break;
}
}
}
}
//Now create a new document with updated font
using (FileStream FS = new FileStream(OutputFile, FileMode.Create, FileAccess.Write, FileShare.None))
{
using (Document Doc = new Document())
{
using (PdfCopy writer = new PdfCopy(Doc, FS))
{
Doc.Open();
for (int j = 1; j <= pdfReader.NumberOfPages; j++)
{
writer.AddPage(writer.GetImportedPage(pdfReader, j));
}
Doc.Close();
}
}
}
pdfReader.Close();
}
相關問題
- 1. 使用iTextSharp更改PDF作物/媒體框
- 2. 如何在PDF中使用字體的子集? (使用iTextSharp)
- 3. 使用iTextSharp和PDFStamper在PDF中使用不同的字體
- 4. 使用iTextSharp備份字體
- 5. 使用iTextSharp的PDF表格
- 6. 如何使用iTextSharp以pdf格式顯示中文字體?
- 7. 如何使用iTextSharp設置PDF段落或字體行高?
- 8. 使用itextsharp從PDF獲取字體大小
- 9. 使用itextsharp導出到pdf
- 10. 使用iTextSharp裁剪PDF
- 11. 使用iTextSharp生成PDF
- 12. 使用iTextsharp生成PDF
- 13. 是否可以更改Itextsharp List的字體?
- 14. 如何更改iTextSharp表的默認字體和顏色?
- 15. 在Itextsharp c中更改列表項的字體大小#
- 16. 使用ITextSharp和mvc損壞的pdf
- 17. 使用iTextSharp的轉換HTML爲PDF
- 18. 如何在itextSharp中設置HTML中的字體爲PDF
- 19. 更改使用多個類的字體
- 20. 使用iTextSharp時分割的PDF大小更大
- 21. iTextSharp的PDF打印
- 22. iTextSharp的多頁PDF
- 23. itextsharp postscript to PDF
- 24. Itextsharp下載PDF
- 25. 更改字體
- 26. 更改字體
- 27. 使用iTextSharp讀取/修改PDF元數據
- 28. iTextSharp字體干擾普通字體
- 29. 使用itextSharp顯示pdf中的特殊字符
- 30. 如何在印地語字體中創建iTextSharp pdf?
你的期望究竟是什麼?只需更改所有文本元素的字體就足夠了嗎?你知道,如果以前使用的字體與新字體的度量標準不同,字體可能重疊或相距甚遠,文本行可能超出正確的文檔邊界等,那麼結果可能看起來非常難看。甚至這種醜陋的解決方案並不總是可能的,因爲字符映射信息可能不包含在文檔中的字體信息中,在自定義編碼的情況下可能使得不可能知道哪個字符是哪個字符。 – mkl 2013-03-05 14:26:34