是否有方法可以確定PDF文件的類型:如果現有PDF文件是掃描圖像,還是使用iTextSharp和C#從數據文件創建?如何使用iTextSharp確定PDF文件類型
6
A
回答
0
0
0
我剛纔提出這個方法的PdfWriter對象的監視窗口中搜索合適的位置後,以取代PDF製作,它改變了PDF的「PDF造物主」,因爲它是不是默認訪問:
private static void ReplacePdfCreator(PdfWriter writer)
{
/*
Warning
*
This is not an option offered as is and i had to workaround it by using Reflection and change it
manually.
*
Alejandro
*/
Type writerType = writer.GetType();
PropertyInfo writerProperty =
writerType.GetProperties(BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance)
.FirstOrDefault(p => p.PropertyType == typeof(PdfDocument));
if (writerProperty != null)
{
PdfDocument pd = (PdfDocument)writerProperty.GetValue(writer);
Type pdType = pd.GetType();
FieldInfo infoProperty =
pdType.GetFields(BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance)
.FirstOrDefault(p => p.Name == "info");
if (infoProperty != null)
{
PdfDocument.PdfInfo pdfInfo = (PdfDocument.PdfInfo)infoProperty.GetValue(pd);
if (pdfInfo != null)
{
string creator = pdfInfo.GetAsString(new PdfName("Producer")).ToLowerInvariant();
if(creator.Contains("itextsharp"))
{
// created with itext sharp
}
else if(creator.Contains("adobe"))
{
// created with adobe something (distiller, photoshop, whatever)
}
else if(creator.Contains("pdfpro"))
{
// created with pdf pro
}
else if(add your own comparison here, for example a scanner manufacturer software like HP's one)
{
}
}
}
}
}
相關問題
- 1. 如何使用iTextSharp從PDF文檔中的字段確定字段類型?
- 2. 如何使用iTextSharp編輯PDF文件
- 3. 如何通過itextsharp生成這個類型的pdf文件?
- 4. 如何使用itextsharp向其他pdf文件附加一個pdf
- 5. 如何使用iTextSharp寫入pdf文檔
- 6. iTextSharp的如何在PDF文件
- 7. 使用fstat來確定文件類型
- 8. 使用C#確定文件類型
- 9. 如何確定文件類型?
- 10. 如何有效確定文件類型?
- 11. 使用iTextSharp保存文件PDF文件中使用的字體
- 12. 如何創建使用iTextSharp添加到PDF文件的按鈕?
- 13. 如何使用iTextSharp從HTML創建PDF/A文件
- 14. 如何使用itextsharp將UTF-8字符寫入pdf文件?
- 15. 如何使用iTextSharp讀取PDF文件夾
- 16. Itextsharp創建PDF文件
- 17. 如何使用Ruby確定multipart/form-data文件類型?
- 18. 如何使用Excel VBA確定文件編碼類型
- 19. 如何使用jQuery確定類型文件
- 20. 如何使用finfo確定多個文件類型?
- 21. 如何使用iTextSharp連接兩個PDF?
- 22. 如何使用iTextSharp編輯PDF?
- 23. 如何使用itextsharp庫來旋轉pdf
- 24. 如何使用iTextSharp在PDF中顯示✔?
- 25. 如何使用iTextSharp將FDF寫入PDF#
- 26. 使用Firefox的PDF文件的內容類型不正確
- 27. 如何在c#中使用iTextsharp指定PDF文件中表格的位置#
- 28. 如何在C#中使用iTextSharp獲取PDF文件中的特定段落?
- 29. 確定文件類型
- 30. 使用iTextSharp將PDF文件添加到現有的pdf集合
你的標準是什麼?您如何區分掃描儀的PDF和其他類型的文檔?這是打印的字符數量嗎?圖像覆蓋的頁面面積是多少?它是創建PDF的程序的名稱? iTextSharp可以幫助您確定這些值,但您必須提前準備好標準。 – mkl
「您如何區分掃描儀的PDF文件...」 - 您甚至無法選擇文本 – ESB
Hhmmm,但情況並非如此。有一些掃描解決方案會執行一些額外的OCR,然後通過不可見但可選擇的文本豐富掃描的PDF。另一方面,使用iTextSharp和C#*可以很容易地從數據文件中創建* PDF *,而無需任何可選文本。那麼,我是否可以解釋您的問題,以便您實際上想區分具有可選文本和沒有文本的PDF? – mkl