एक एन्क्रिप्टेड, छिपे हुए वॉटरमार्क को शामिल करने के लिए एक पीडीएफ उत्पन्न या अपडेट करें?


10

पृष्ठभूमि

किताब लिखने के लिए LaTeX का उपयोग करना। जब कोई उपयोगकर्ता पुस्तक खरीदता है, तो पीडीएफ स्वचालित रूप से उत्पन्न हो जाएगा।

मुसीबत

पीडीएफ में एक वॉटरमार्क होना चाहिए जिसमें व्यक्ति का नाम और संपर्क जानकारी शामिल हो।

सवाल

कौन सा सॉफ्टवेयर निम्नलिखित मानदंडों को पूरा करता है:

  • एक पीडीएफ में एन्क्रिप्टेड, अदृश्य वॉटरमार्क लागू करता है
  • खुला स्त्रोत
  • प्लेटफ़ॉर्म स्वतंत्र (लिनक्स, विंडोज)
  • तेज़ (1 सेकंड के भीतर 200 पेज का पीडीएफ चिह्नित करता है)
  • बैच प्रसंस्करण (विशेष रूप से कमांड लाइन संचालित)
  • टक्कर-हमला प्रतिरोधी
  • गैर-नाजुक (जैसे, पीडीएफ -> ईपीएस -> पीडीएफ में अभी भी वॉटरमार्क है)
  • अच्छी तरह से प्रलेखित (उदाहरण उदाहरण दिखाता है)

विचार और संसाधन

कुछ विचार और निष्कर्ष:

  • प्राकृतिक भाषा प्रसंस्करण (एनएलपी) वॉटरमार्क।
  • बेतरतीब ढंग से चयनित छवि पर स्टेग्नोग्राफ़ी लागू करें।
  • http://openstego.sourceforge.net/cmdline.html

एनएलपी के साथ समस्या यह है कि व्याकरण संबंधी त्रुटियों को पेश किया जा सकता है। स्टेग्नोग्राफ़ी के साथ समस्या यह है कि छवियों को एक छवि कैश से सॉर्ट किया जाता है, और इसलिए वॉटरमार्क छवियों के साथ कैश को फिर से बनाते समय पीडीएफ जेनरेट करने में देरी होती है (मैं कैश से सिर्फ एक छवि को हटा सकता था, लेकिन यह एक सुरुचिपूर्ण समाधान नहीं है)।

धन्यवाद!


कृपया आवश्यकताओं के अपने विवरण को थोड़ा संशोधित करें, अन्यथा वे अस्पष्ट हैं। "undetectable वॉटरमार्क" स्पष्ट रूप से वह नहीं है जो आप चाहते हैं ... अन्यथा, यदि आप आवश्यक हैं तो आप खुद को उनका पता कैसे लगाएंगे?
कर्ट फ़िफ़ले

यह थोड़ा अस्पष्ट है कि वास्तव में आपकी कल्पना प्रणाली का उद्देश्य क्या है: पता लगाएँ कि क्या पीडीएफ किसी अन्य उपयोगकर्ता के साथ पारित हो गया है, भले ही आपका लाइसेंस यह मना करता हो? पता लगाएँ कि क्या पीडीएफ कागज पर मुद्रित है, भले ही आपका लाइसेंस यह मना करता हो? इंटरनेट के माध्यम से एक विशेष पीडीएफ के रास्ते को ट्रैक करें और इसे खोलने पर ट्रैक करें? या कुछ और?
कर्ट फ़िफ़ल

@ पिपिटास: यदि पीडीएफ का एक पंजीकृत संस्करण बिना अनुमति के, जंगली में जारी किया गया है, तो मैं जानना चाहता हूं कि इसे किसने जारी किया। लेकिन अगर लोग देख सकते हैं कि पीडीएफ में वॉटरमार्क है, तो वॉटरमार्क को दरकिनार करना बहुत आसान हो जाता है।
डेव जार्विस

जवाबों:


6

मैंने कुछ साल पहले ऐसा ही कुछ किया था। यह आपके सभी "कठिन" मानदंडों को पूरा नहीं करता था। यह इस तरह काम किया:

  • मैंने एक यादृच्छिक पीडीएफ पृष्ठ की सीमाओं में से किसी एक पर कुछ यादृच्छिक स्थान पर शायद ही पता लगाने योग्य, 2x2 बिंदु आकार "क्लिक करने योग्य" क्षेत्र डाल दिया। यह बहुत संभावना नहीं है कि इसे दुर्घटना से पता चलता है (अन्य बहुत स्पष्ट रूप से क्लिक करने योग्य हॉटस्पॉट के लोड के बीच जो कि वैसे भी पीडीएफ में था ...)।

  • क्या आपको लिंक पर क्लिक करना चाहिए, यह आपको एक वेबपेज पर ले जाएगा http://my.own.site/project/87245e386722ad77b4212dbec4f0e912, जिसमें कुछ मेकअप "इरेटा" बुलेट पॉइंट्स होंगे। (क्या मैंने उल्लेख किया है कि 87245e386722ad77b4212dbec4f0e912व्यक्ति के नाम + संपर्क डेटा का एमडी 5 हैश है जिसे मैंने एक डीबी तालिका में संग्रहीत किया है :-)?

जाहिर है, यह मुद्रण + स्कैनिंग + ocr-ing या एक पीडीएफ "रीफ्रिंग" चक्र के खिलाफ की रक्षा नहीं करता है। और यह कुछ हद तक "अस्पष्टता से सुरक्षा" पर भी निर्भर करता है।

इस तरह से आप रैंडम-इन-पेपर के पेज 1 के निचले बाएँ कोने में इस तरह के क्लिक करने योग्य हॉटस्पॉट को जोड़ने के लिए घोस्टस्क्रिप्ट का उपयोग करते हैं:

gs \
 -o random-out.pdf \
 -sDEVICE=pdfwrite \
 -dPDFSETTINGS=/prepress \
 -c "[ /Rect [1 1 3 3]" \
 -c "  /Color [1 1 1]" \
 -c "  /Page 1" \
 -c "  /Action <</Subtype /URI" \
 -c "  /URI (http://my.own.site/87245e386722ad77b4212dbec4f0e912)>>" \
 -c "  /Subtype /Link" \
 -c "  /ANN pdfmark" \
 -f random-in.pdf

क्लिक करने योग्य क्षेत्र को इस तरह से कमांडलाइन मापदंडों से ऊपर बड़ा और दृश्यमान परिवर्तन करने के लिए:

 [....]
 -c "[/Rect [1 1 50 50]" \
 -c "  /Color [1 0 0]" \
 [....]

इससे भी अधिक सरल आपके डेटाबेस में पीडीएफ का एमडी 5 हैश उत्पन्न करना और रखना होगा। यह आपके द्वारा बनाए गए प्रत्येक पीडीएफ के लिए यूनीक होगा, क्योंकि दस्तावेजों में UUID और क्रिएशनडेट और मोडडेट इसके मेटा डेटा के अंदर हैं। बेशक, यह केवल मूल पीडीएफ को उनके डिजिटल रूप में ट्रैक करने की अनुमति देता है ...


क्या आपको कभी जंगली में एक पीडीएफ मिला और इस तकनीक का उपयोग करके इसे वापस ट्रेस किया गया?
डेव जार्विस

@Dave जार्विस: हां, मैंने एक तरह से ... लेकिन यह "गंभीर" बात नहीं थी, मुझे ट्रैकिंग में कोई वास्तविक दिलचस्पी नहीं थी। मैंने इसे केवल अवधारणा के प्रमाण के रूप में किया, और लगभग 6 महीने बाद मैंने "ट्रैकिंग" वेब सर्वर को बंद कर दिया। यह एक नेटवर्क पीडीएफ सर्वर के लिए था, मैंने एक ग्राहक की कंपनी के अंदर स्थापित किया था। "ट्रैकर" ऊपर वर्णित के समान था, लेकिन एक पूर्ण पृष्ठ क्लिक करने योग्य क्षेत्र का उपयोग करता था। मैंने बस अपाचे लॉग फ़ाइल में "हिट" की संख्या को ट्रैक किया ...
कर्ट फ़िफ़ल

अच्छा विचार है, लेकिन ध्यान दें कि घोस्टस्क्रिप्ट एक पीडीएफ पर चल रहा है जैसे कि किसी भी नमूने की छवियों को नीचा कर सकता है जो इसमें शामिल हैं, क्योंकि घोस्टस्क्रिप्ट उन्हें डिकम्प्रेस करने का समर्थन नहीं करता है (जो उन छवियों से जानकारी खो देता है जो इनपुट में संकुचित जेपीईजी-शैली थे) और जाता है। सभी छवियों के लिए JPEG- शैली संपीड़न लागू करें (यहां तक ​​कि यह सिर्फ विघटित होता है) ...
सैमबी

@SBB: मुझे लगता है कि आप -dJPEQ=100 -dQFActor=1.0घोस्टस्क्रिप्ट कमांडलाइन में यह सुनिश्चित करने के लिए जोड़ सकते हैं कि आप JPEG की गुणवत्ता को समाप्त करने के लिए 100% बनाए रखेंगे। लेकिन नहीं, मैंने अपनी फाइलों में छवि गुणवत्ता में कोई गिरावट नहीं देखी है, अगर मैं -dPDFSETTINGS=/prepress
भूतलस्क्रिप्ट के

[contd।] और नहीं, यह केवल JPEG संपीड़न नहीं है जो घोस्टस्क्रिप्ट से छवियों के लिए प्रस्ताव पर है - आप पुराने जीएस संस्करणों में -dColorImageFilter=/FlateEncodeडिफ़ॉल्ट =/DCTEncode(जो हानिप्रद जेपीईजी है ) को ओवरराइड करने के लिए (जो दोषरहित ज़िप है) का उपयोग कर सकते हैं । चूंकि जीएस v7.21 डिफ़ॉल्ट =/FlateEncodeवैसे भी है ... समान रंग के लिए सच है -dGrayImageFilter=...( डिफ़ॉल्ट रूप से -dMonoImageFilter=...उपयोग करता /CCITTFaxEncodeहै।)
कर्ट फ़िफ़ल

1

बहुत कठिन है और मुझे यकीन नहीं है कि यह आपके सभी सवालों का जवाब देगा।

मैं एक समाधान में सभी पर यकीन नहीं कर रहा हूं जो यह कर सकता है, या यादृच्छिक कर सकता है।

हालांकि, अगर मुझे इसके साथ काम सौंपा गया था, तो मुझे लगता है कि दस्तावेज़ को मध्यवर्ती प्रारूप जैसे कि HTML, या इसी तरह के प्रारूप में रखने का सबसे आसान तरीका है।

एक प्रिंट सीएसएस फ़ाइल या समान का उपयोग करके, आप लेआउट को पुस्तक के समान हो सकते हैं और चित्र, सामग्री या किसी भी चीज़ को यादृच्छिक करने के लिए किसी प्रकार की स्क्रिप्ट का उपयोग कर सकते हैं और एक सर्वर साइड पीडीएफ घटक जो दस्तावेज़ को वापस इकट्ठा करता है।

तो फिर - उदाहरण के लिए, दस्तावेज़ खरीदने वाले किसी व्यक्ति पर, आपकी खरीद स्क्रिप्ट यादृच्छिक रूप से एक संख्या चुन सकती है जो एक सुरक्षा तंत्र (जैसे पहली तस्वीर, दूसरी तस्वीर, पाठ कहीं आदि) की पहचान करती है, और फिर एक अद्वितीय डाउनलोड लिंक उत्पन्न करती है।

जब उस डाउनलोड लिंक को कॉल किया जाता है, तो वह नंबर की जांच करता है, ऑपरेशन करता है और पीडीएफ को संकलित करता है, फिर क्लाइंट को डाउनलोड करता है।

फिर से, मुझे पता है कि यह आसान / सीधे आगे नहीं होगा, लेकिन आप कुछ ऐसा नहीं पूछ रहे हैं जो आसान हो और यह सबसे अच्छा तरीका है जिसके बारे में मैं सोच सकता हूं।


@ जार्विस - मैं पूरी तरह से समझता हूं कि आप क्या करने की कोशिश कर रहे हैं ... जैसा कि मैंने कहा, मुझे यकीन नहीं है कि सबसे अच्छा समाधान है, लेकिन मैंने जो कहा वह कम से कम काम करना चाहिए ... बस आसान से बहुत दूर।
विलियम हिल्सम

@ जरवेविस - जो मैं कहने / पाने की कोशिश कर रहा था वह यह है कि मैंने कभी भी सभी को एक / आसान तरीके से नहीं देखा कि आप क्या करना चाहते हैं, लेकिन PHP / ASP.Net का उपयोग करके, स्क्रिप्ट लिखना / थर्ड पार्टी कॉल करना आसान है अवयव। मुझे लगता है कि यदि आपके पास HTML में संपूर्ण दस्तावेज़ सही / सही रूप में प्रारूपित है, तो इसे कनवर्ट करने के लिए एक पीडीएफ घटक का उपयोग करना बहुत आसान होगा। उदाहरण के लिए, यह कहता है कि पृष्ठ 31 पर 100 पृष्ठ और एक चित्र है, आप एक पीडीएफ के रूप में पेज 1-30 हो सकते हैं और पीडीएफ के रूप में पेज 32-100, पेज 31 जेनरेट किया जाएगा और html (बाकी किताब की शैली में) में स्वरूपित किया जाएगा, फिर आप एक 1/2 का उपयोग कर सकते हैं
विलियम हिल्सम

पीडीएफ कंपोनेंट जिसमें पहला पीडीएफ मिलेगा, एचटीएमएल पेज को कवर करेगा, दूसरा पीडीएफ मिलेगा और यह सब मिलाकर एक नया पीडीएफ जेनरेट करेगा। उत्पन्न पृष्ठ स्क्रिप्ट्स को कॉल कर सकता है, स्टेग्नोग्राफ़ी कर सकता है (क्रिया पर निश्चित नहीं!) या कुछ और जो आप चाहते हैं ... कई (मुफ्त और भुगतान) पीडीएफ घटक हैं - यह उदाहरण के लिए एक है ... घटक one- SuperProducts / पीडीएफ मुझे उम्मीद है कि यह थोड़ा स्पष्ट करता है कि मैं क्या पाने की कोशिश कर रहा हूं - बस समझाने के लिए बहुत मुश्किल है। 2/2
विलियम हिल्सम

@ जार्विस - एह, बिल्कुल नहीं ... जैसा कि मैंने कहा, समझाने में बहुत मुश्किल है .... कुछ पीडीएफ घटक सीएसएस / प्रिंट शैलियों के साथ अद्भुत हैं। उदाहरण के लिए, मूडल को देखें। वेब पेज को पूरी तरह से प्रारूपित करना और प्रिंट आउट को एक पुस्तक की तरह बनाना / एक शैली का अनुसरण करना संभव है। इसके बाद आप / निर्यात करने के लिए एक पीडीएफ घटक उपयोग कर सकते हैं बचाने के लिए बिल्कुल कैसे यह अंतिम परिणाम पर गौर करना चाहिए की तरह। आप आसानी से अपनी जरूरत के चित्र को उत्पन्न कर सकते हैं और पाठ कर सकते हैं, और इसे इकट्ठा कर सकते हैं (मूल रूप से अंतिम उपयोगकर्ता के लिए) एक एकल पीडीएफ फाइल के रूप में। मैं सिर्फ वेब / php / asp.net का उल्लेख करता हूं क्योंकि मुझे लगता है कि यह सबसे आसान तरीका है जो आप चाहते हैं।
विलियम हिल्सम

@ जार्विस: मुझे लगता है कि आप pdfTeX का उपयोग नहीं कर रहे हैं, तब? (या आप अधिक के बारे में चिंतित थे उन pdf-> ps-> पीडीएफ रूपांतरण करने और इस प्रक्रिया में नमूना छवियों अपमानजनक?)। वैसे भी, ps-> पीडीएफ रूपांतरण आम तौर पर छवियों को नीचा दिखाता है , क्योंकि घोस्टस्क्रिप्ट जेपीईजी-शैली की छवियों को संपीड़ित रूप में संरक्षित करने के लिए पर्याप्त स्मार्ट नहीं है, और इनपुट में होने वाली किसी भी छवि के लिए जेपीईजी-शैली संपीड़न को स्वचालित रूप से लागू करता है। (डिस्टिलर जाहिरा तौर पर जेपीईजी-शैली की छवियों को अकेले छोड़ने का निर्देश दिया जा सकता है, लेकिन क्या वास्तव में किसी के पास है?)
सैमबी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.