我們正在將幾個舊的Access數據庫升級/轉換爲MS-SQL。這些數據庫中的很多都具有存儲PDF文件的OLE對象字段。我正在尋找一種方法來提取這些文件並將它們存儲在我們的SQL數據庫中。我已經看到類似的問題,回答你可能如何使用圖像文件(jpg,bmp,gif等)來做到這一點,但我還沒有找到適用於PDF的方法。從Access數據庫中提取OLE對象(pdf)
5
A
回答
4
我終於得到了一些代碼,爲我想要它做的事情工作。訣竅是確定哪些部分是OLE頭並將其刪除。這裏是爲我工作(基於代碼中發現here)
public static byte[] StripOleHeader(byte[] fileData)
{
const string START_BLOCK = "%PDF-1.3";
int startPos = -1;
Encoding u8 = Encoding.UTF7;
string strEncoding = u8.GetString(fileData);
if (strEncoding.IndexOf(START_BLOCK) != -1)
{
startPos = strEncoding.IndexOf(START_BLOCK);
}
if (startPos == -1)
{
throw new Exception("Could not find PDF Header");
}
byte[] retByte = new byte[fileData.LongLength - startPos];
Array.Copy(fileData, startPos, retByte, 0, fileData.LongLength - startPos);
return retByte;
}
請注意,這僅適用於PDF文件。
1
OLEtoDisk
「這個版本來保存包含OLE對象到磁盤表的全部內容。不要求擔任OLE服務器插入對象的原始應用程序支持所有MS Office文檔,PDF,所有由MS Photo Editor,MS Paint和Paint Shop Pro插入的圖像也支持提取PACKAGE類,包括原始文件名,包含生成包括LINKED路徑和文件名在內的OLE字段的完整庫存的功能,使用結構化存儲API讀取實際內容「
相關問題
- 1. MS Access中提取Word OLE對象
- 2. 從Access DB中提取OLE對象(word文檔)
- 3. 從MS Access中提取OLE對象(Word文檔)
- 4. 從數據對象中提取數據
- 5. 從OLE對象鏈接獲取路徑MS Access 2007
- 6. 在axAcroPdf中顯示OLE對象(pdf)
- 7. 從對象中提取數據
- 8. 從匹配對象中提取數據
- 9. 在Symfony 2.7.3中從數據庫提取對象
- 10. 從MySQL數據庫中提取一個不重要的對象
- 11. VB從Access數據庫中提取平均值
- 12. 爲Northwind Access數據庫訂購對象
- 13. Zend框架Access數據庫表對象
- 14. 如何從此對象提取數據?
- 15. 無法從beautiful_soup對象提取數據
- 16. 從OLE結構化數據提取數據
- 17. 從Access數據庫
- 18. laravel從數據庫中提取數據
- 19. 從數據庫中提取數據
- 20. 提取PDF行到Rails數據庫?
- 21. Perl中的Win32 :: OLE生成Access數據庫
- 22. 從數據庫獲取對象列表
- 23. 在沒有OLE應用程序的情況下提取Microsoft Office中的OLE對象數據
- 24. 從PDF中提取表格數據並對其進行排序
- 25. VB從Access數據庫讀取
- 26. 從Access數據庫讀取c#
- 27. 從提交的數據庫中提取數據庫
- 28. 從SQL數據庫中讀取BLOB對象(PDF文件)時出現InvalidCastException
- 29. 的Microsoft Office 12.0 Access數據庫引擎OLE DB提供程序問題
- 30. 使用PHP創建JSON對象 - 從數據庫列的提取值中獲取
我見過(並嘗試過)。它的工作,以拉出PDF文件,但我試圖找到我可以集成到我自己的(C#)代碼的東西。其中一些Access數據庫有4列以上存儲PDF文件,最終,我只想將文件複製到我們的SQL服務器上的所有其他數據表中。 – Nate 2009-06-23 12:56:46
啊,你從來沒有說過你在尋找C#代碼。 – 2009-06-23 19:32:35