是否有方法可以确定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