我們有一個應用程序生成PDF文件,有些時候出於某種未知的原因,其中一個PDF文件被損壞,即它被創建損壞,我們需要檢查這個pdf在繼續閱讀其他pdf文件之前是否被破壞,如果它已損壞,我們需要重新創建它。檢查一個PDF文件是否被損壞使用C#
謝謝
我們有一個應用程序生成PDF文件,有些時候出於某種未知的原因,其中一個PDF文件被損壞,即它被創建損壞,我們需要檢查這個pdf在繼續閱讀其他pdf文件之前是否被破壞,如果它已損壞,我們需要重新創建它。檢查一個PDF文件是否被損壞使用C#
謝謝
看看PDF解析器,並嘗試使用它們來檢測腐敗。例如,ghostscript。
聲明:我Atalasoft
工作在DotImage Document Imaging,我們包括一些PDF解析類,如果該文件已損壞,將拋出。
如果您添加了我們的PDF閱讀器附加組件,我們將嘗試對PDF進行柵格化 - 如果它已損壞,將拋出。如果問題缺失,則可以在結果圖像中查找它們。
您可以查看PDF標題是這樣的:
public bool IsPDFHeader(string fileName)
{
byte[] buffer = null;
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(fileName).Length;
//buffer = br.ReadBytes((int)numBytes);
buffer = br.ReadBytes(5);
var enc = new ASCIIEncoding();
var header = enc.GetString(buffer);
//%PDF−1.0
// If you are loading it into a long, this is (0x04034b50).
if (buffer[0] == 0x25 && buffer[1] == 0x50
&& buffer[2] == 0x44 && buffer[3] == 0x46)
{
return header.StartsWith("%PDF-");
}
return false;
}
什麼是「破壞」從技術角度看是什麼意思?怎麼了? 0字節文件,只有x字節被複制,內部亂碼等。 –
要補充說明的是,幻數沒有正確設置?它是否產生直到一個點,然後突然你有胡言亂語? – tafoo85
jpeg改名爲pdf? –