我正在使用C#作为编程平台并iTextSharp阅读PDF内容.我使用下面的代码来阅读内容,但它似乎每页读取.
public string ReadPdfFile(object Filename)
{
string strText = string.Empty;
try
{
PdfReader reader = new PdfReader((string)Filename);
for (int page = 1; page <= reader.NumberOfPages; page++)
{
ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy();
String s = PdfTextExtractor.GetTextFromPage(reader, page, its);
s = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(s)));
strText = strText + s;
}
reader.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return strText;
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我如何编写每行读取pdf内容的代码?
在处理读取iPhone应用程序时,它在UIWebView中显示nsdata(html和pdf).我在一些PDF验证逻辑中遇到了麻烦.我有一个NSData对象,我知道它包含一个扩展名为.pdf的文件.我想限制无效的PDF进一步获取.这是我第一次尝试验证代码,它似乎适用于大多数情况:
// pdfData is an NSData *
NSData *validPDF = [[NSString stringWithString:@"%PDF"] dataUsingEncoding: NSASCIIStringEncoding];
if (!(pdfData && [[pdfData subdataWithRange:NSMakeRange(0, 4)] isEqualToData:validPDF])) {
// error
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,几天前上传了一个新的pdf.从某种意义上说,UIWebView会很好地显示它,但它无法通过我的验证测试.我已经将这个问题追溯到一开始就是一堆垃圾字节这一事实,%PDF在第14组十六进制字符中间出现(25或%恰好是第54个字节):
%PDF: 25504446
Breaking PDF: 00010000 00ffffff ff010000 00000000 000f0100 0000b5e0 04000200 01000000 ffffffff 01000000 00000000 0f010000 0099e004 00022550 44462d31 etc...
Run Code Online (Sandbox Code Playgroud)
验证NSData是PDF的最佳做法是什么?
这个特定的PDF可能有什么问题(它声称它是由PaperPort 11.0编码的,不管是什么)?
谢谢,
麦克风
可能重复:
检测PDF文件是否正确(标题PDF)
我想验证FileStream实例中的数据是否代表有效的PDF文档.具体来说,我需要知道Adobe Reader将能够成功打开该文件.
任何人都可以为此任务推荐开源库或最佳实践吗?
pdf ×3
c# ×2
.net ×1
encoding ×1
filestream ×1
iphone ×1
itext ×1
nsdata ×1
objective-c ×1
validation ×1