से ओएलई ऑब्जेक्ट (पीडीएफ) निकालें हम एमएस-एसक्यूएल में कई पुराने एक्सेस डेटाबेस को अपग्रेड/कनवर्ट कर रहे हैं। इनमें से कई डेटाबेस में ओएलई ऑब्जेक्ट फ़ील्ड हैं जो पीडीएफ फाइलों को स्टोर करते हैं। मैं इन फ़ाइलों को निकालने और उन्हें हमारे SQL डेटाबेस में संग्रहीत करने का एक तरीका ढूंढ रहा हूं। मैंने इसी तरह के प्रश्न देखे हैं जो जवाब देते हैं कि आप छवि फ़ाइलों (jpg, bmp, gif, आदि) के साथ ऐसा कैसे कर सकते हैं लेकिन मुझे कोई तरीका नहीं मिला है जो पीडीएफ के साथ काम करता है।एक्सेस डीबी
उत्तर
मुझे आखिरकार कुछ कोड मिल गया जो मैं चाहता हूं कि मैं इसे करना चाहता हूं। चाल यह निर्धारित कर रही है कि ओएलई हैडर कौन सा हिस्सा है और इसे हटा रहा है। यहाँ है मेरे लिए क्या काम कर रहा है (कोड के आधार पर पाया 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;
}
ध्यान दें कि पीडीएफ फाइलों के लिए यह केवल काम करता है।
OLEtoDisk
"इस संस्करण में डिस्क के लिए OLE वस्तुओं से युक्त एक मेज की सारी सामग्री को बचाता है। मूल आवेदन कि OLE सर्वर के रूप में सेवा ऑब्जेक्ट सम्मिलित करने आवश्यकता नहीं है। सभी एमएस ऑफ़िस दस्तावेज़ों, पीडीएफ का समर्थन करता है, एमएस फोटो एडिटर, एमएस पेंट, और पेंट शॉप प्रो द्वारा डाली गई सभी छवियां। मूल फ़ाइल नाम सहित पैकेज श्रेणी के निष्कर्षण का भी समर्थन करती हैं। ओएलई फ़ील्ड की पूर्ण सूची बनाने के लिए फ़ंक्शन शामिल है जिसमें LINKED पथ और फ़ाइल नाम शामिल हैं। स्ट्रक्चरर्ड स्टोरेज एपीआई का उपयोग पढ़ने के लिए क्षेत्र की वास्तविक सामग्री "
मैंने देखा है (और कोशिश की)। यह पीडीएफ खींचने के लिए काम करता है लेकिन मैं कुछ ऐसा खोजने की कोशिश कर रहा हूं जिसे मैं अपने स्वयं के (सी #) कोड में एकीकृत कर सकूं। इनमें से कुछ एक्सेस डीबी में 4+ कॉलम हैं जो पीडीएफ फाइलों को स्टोर करते हैं और आखिरकार, मैं बस अपने SQL सर्वर पर किसी अन्य डेटा के साथ फ़ाइल को कॉपी करना चाहता हूं। – Nate
आह, आपने कभी नहीं कहा था कि आप सी # कोड की तलाश में थे। –
चूंकि यह एक पुराना उत्तर है, यह कोड मेरे लिए काम करता है, मुझे केवल "% पीडीएफ-1.3" को "% पीडीएफ -17" में अपडेट करना पड़ा और यह हेडर को सही तरीके से बाहर करने में सक्षम था। विचित्र रूप से पर्याप्त, यह सिर्फ "% पीडीएफ" के लिए खोज के साथ काम किया ... – Arthurdent510