我需要編輯幾個PDF文件的標題信息。 我想實現的是在%PDF-X.Y.Z
之前刪除所有標題數據。編輯或刪除C中的PDF標題信息
我想出了一個可能的解決方案是二進制模式來打開PDF,直到%PDF-X.Y.Z
找到閱讀的每個字符。 然後繼續閱讀流的其餘部分並將其保存到新文件。我認爲這樣我會得到一個精確的二進制PDF副本,只是不同的頭文件信息。
C中最簡單/最好的方法是什麼? 有沒有可以幫助我做到這一點的圖書館? 我也有興趣聽到解決這個問題的不同方法。
謝謝。
我需要編輯幾個PDF文件的標題信息。 我想實現的是在%PDF-X.Y.Z
之前刪除所有標題數據。編輯或刪除C中的PDF標題信息
我想出了一個可能的解決方案是二進制模式來打開PDF,直到%PDF-X.Y.Z
找到閱讀的每個字符。 然後繼續閱讀流的其餘部分並將其保存到新文件。我認爲這樣我會得到一個精確的二進制PDF副本,只是不同的頭文件信息。
C中最簡單/最好的方法是什麼? 有沒有可以幫助我做到這一點的圖書館? 我也有興趣聽到解決這個問題的不同方法。
謝謝。
假設剝離文件的開頭確實解決你的問題,你所需要的的fopen,FREAD,FWRITE和FCLOSE。
打開文件以二進制模式讀取。閱讀,直到找到神奇的%PDF字符串。打開二進制寫入的輸出文件。寫出該文件,從你的新%PDF字符串開始。寫完後,關閉這兩個文件。
好吧,我正確的方式。當文件以二進制模式打開時,使用'fread'在字節後面讀取字節並將該值與字符進行比較的最佳方法是什麼? – Dominik 2011-03-11 09:15:49
天真的方法是將其讀入緩衝區,然後逐字節地前進通過緩衝區調用memcmp,以檢查匹配。這可能有一個庫函數。這在C++中會更容易,並且在更高級別的語言中是微不足道的! – 2011-03-11 09:25:23
我明白了。將整個文件讀入緩衝區對於我而言可能有點危險,因爲PDF文件的大小可能爲幾GB。我其實選擇C是因爲我認爲這可能是操縱/處理二進制數據的最簡單方法。所以你認爲我會更好地使用例如C#或Python? – Dominik 2011-03-11 09:36:46