मैं एक शब्द दस्तावेज़ को पीडीएफ में कैसे बदलूं?


10

लोगों की मदद करें कि मेरा असाइनमेंट कहता है कि इसे .pdf फॉर्मेट में होना चाहिए लेकिन मैंने इसे वर्ड में किया है। मैं वास्तव में फंस गया हूं।

मैं एक शब्द दस्तावेज़ को .docx प्रारूप में कैसे ले जाऊं और उसमें एक .pdf बनाऊं जिसमें सभी पाठ हों? बोनस अंक अगर इसमें सभी चित्र और किसी भी स्वरूपण शामिल हैं, लेकिन पाठ एक न्यूनतम है। मैं जिस सैंपल फ़ाइल का उपयोग कर रहा हूँ वह यह होगी , हालाँकि आपका समाधान सामान्य होना चाहिए।

मैं इसे किसी भी अनावश्यक प्रसंस्करण कदम से गुजरना नहीं चाहता - बस एन्कोडिंग तो दस्तावेज़ को बेस 64 में डिकोड करना या जो भी प्रश्न की भावना में नहीं है, हालांकि रचनात्मक उपयोग cowsayइसके लिए एक अपवाद होगा। कोड ट्रोलिंग के मानक नियम लागू होते हैं - समाधान तकनीकी रूप से सही होना चाहिए, सभी कदम तकनीकी रूप से आवश्यक होने चाहिए, परिणाम तकनीकी रूप से बेकार होना चाहिए। यह एक "रुब गोल्डबर्ग" शैली कार्यक्रम से अधिक होना चाहिए, एक मोटापा और मोटापा प्रतियोगिता की तुलना में।

मेरे द्वारा 5/1/14 जीत के अलावा अन्य उत्तरों पर अधिकांश अपवोट।

नोट: यह एक प्रश्न है। कृपया प्रश्न और / या उत्तर को गंभीरता से न लें। अधिक जानकारी यहाँ


2
यह असाइनमेंट जटिल है, लेकिन मुझे यकीन है कि WPF एप्लिकेशन में एक पूर्वावलोकन हैंडलर का उपयोग करने के लिए एकमात्र उचित तरीका होगा, उसका स्क्रीनशॉट लेना, बिटमैप को GIF के रूप में सहेजना और फिर उसे PDF के रूप में प्रिंट करना
Mathias R । जेसी

कोड-ट्रोलिंग आधिकारिक रुख के अनुसार हटाए जाने की प्रक्रिया में है इस पोस्ट में सवाल और जवाब पर उचित मात्रा में वोट होते हैं, और भले ही यह पोल पर 50% "हटाएं" वोटों से प्राप्त हो , यह अधिक अच्छी तरह से निर्दिष्ट [कोड-ट्रोलिंग] पोस्टों में से एक है। इसलिए, मैं इसे ऐतिहासिक महत्व के लिए बंद कर रहा हूं।
दरवाज़े

जवाबों:


24

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

अब आप पोस्टस्क्रिप्ट को पीडीएफ में बदलने के लिए एक कार्यक्रम लिख सकते हैं, लेकिन हमारे पास भूत-प्रेत नहीं है, जो यूनिक्स के लिए लिखा गया था और लिनक्स पर ठीक काम करता है (इस परियोजना के लिए कोई बड़ा अंतर नहीं है)। दुर्भाग्य से शब्द केवल खिड़कियों पर चलता है, इसलिए आपको दो कंप्यूटरों की आवश्यकता होती है, और खिड़कियों को यह समझाने के लिए कि लिनक्स कंप्यूटर एक प्रिंटर है जिसे आपको एक सीरियल केबल और एक शून्य मॉडेम की आवश्यकता है। अगर आपके कंप्यूटर (s) में rs232 कन्वर्टर्स के लिए सीरियल पोर्ट नहीं हैं, तो कन्वर्टर्स ठीक काम करते हैं (मैं फुट्टी चिपसेट वाले लोगों की सलाह देता हूं)। अब सीरियल केबल और नल मॉडेम के साथ दो कंप्यूटरों को हुक करें और सत्यापित करें कि आप संवाद कर सकते हैं (सुनिश्चित करें कि आपके पैरामीटर मेल खाते हैं)।

ठीक है कि अब आप उनसे बात कर रहे हैं, यह आपके विंडोज़ बॉक्स को समझाने का समय है कि लिनक्स बॉक्स एक प्रिंटर है: बस ऐप्पल राइटर II के लिए प्रिंटर ड्राइवर स्थापित करें और कहें कि यह सीरियल पोर्ट से जुड़ा है। अब जब आप प्रिंट करते हैं तो आप linux बॉक्स में पोस्टस्क्रिप्ट भेजते हैं। अगला चरण इसे फ़ाइल के रूप में सहेजना है।

अब अपने लिनक्स बॉक्स पर स्कूट करें और इस सरल कमांड का उपयोग करें:

dd -if=/dev/ttyS0 -of=- -bs=1 | ps2pdf - - | sed -e '' >tmpfile && mv tmpfile file.pdf

और जितना हो सके उतना सरल है।


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


2
यद्यपि यह परीक्षण मेरे माध्यम से परे है, पृष्ठभूमि पढ़ने का एक सा पता चलता है कि यह वैध और भयानक दोनों है। अच्छा कार्य!
युम्बर्ट

6
मुझे लगता है कि अशक्त मॉडेम बनाने के निर्देश सहित, बस इसलिए एक टांका लगाने वाले लोहे की आवश्यकता थी।
hildred

13

इन दिनों कई प्रिंटर स्वचालित दस्तावेज़ फीडर के साथ संयोजन प्रिंटर / स्कैनर हैं। यह सरल होगा।

  1. दस्तावेज़ प्रिंट करें।
  2. प्रिंट आउट को स्कैन करें।

3
यह है कि लोग वास्तव में ऐसा कैसे करते हैं ... काश मैं मजाक कर रहा होता। और, यह कोड-ट्रोलिंग है , आपका कोड कहां है?
derobert

9

पीएचपी

यह कोड पीडीएफ फाइलों का उत्पादन करता है जो आपके टिकर टेप मशीन पर पूरी तरह से प्रिंट होना चाहिए । यदि आप अपने मॉनिटर पर पीडीएफ फाइलों को देखना चाहते हैं, तो आपको थोड़ा सा ज़ूम करना पड़ सकता है।

उदाहरण स्रोत दस्तावेज़ शब्द दस्तावेज़

पीडीएफ आउटपुट (ब्राउज़र में देखा गया) पीडीएफ दस्तावेज़ का आंशिक दृश्य

सोर्स कोड

<?php

header("Content-Type: application/pdf");

$s = docx2txt("word-file.docx"); // <-- Insert filename here!
echo txt2pdf($s);


function docx2txt($filename) {
  if (!($z=zip_open($filename))) return false; // Can't open file
  while ($r=zip_read($z)) {
    if (zip_entry_name($r)!="word/document.xml") continue;
    if (!zip_entry_open($z,$r)) return false; // Can't open XML data
    for ($s="";;) {
      $c=zip_entry_read($r);
      if ($c===false || $c=="") break;
      $s.=$c;
    }
    return trim(preg_replace('/\s+/',' ',preg_replace('/<[^>]*>/','',$s)));
  }
  return false; // Can't find XML data
}


function txt2pdf($text) {
  $width="".ceil(strlen($text)*7.2);
  $text=str_replace('(','\050',str_replace(')','\051',$text));
  $length=strlen($text);
  $wlen=strlen($width);
  $len4="".(44+$length);
  $xr3=sprintf("%010d",174+$wlen);
  $xr4=sprintf("%010d",449+$wlen);
  $xrstart=544+$wlen+strlen($len4)+$length;
  return "%PDF-1.1\n%¥±ë\n\n1 0 obj\n  << /Type /Catalog\n     /Pages 2 0 R\n" .
         "  >>\nendobj\n\n2 0 obj\n  << /Type /Pages\n     /Kids [3 0 R]\n   " .
         "  /Count 1\n     /MediaBox [0 0 $width 14]\n  >>\nendobj\n\n3 0 obj" .
         "\n  <<  /Type /Page\n      /Parent 2 0 R\n      /Resources\n       " .
         "<< /Font\n           << /F1\n               << /Type /Font\n       " .
         "           /Subtype /Type1\n                  /BaseFont /Courier\n " .
         "              >>\n           >>\n       >>\n      /Contents 4 0 R\n" .
         "  >>\nendobj\n\n4 0 obj\n  << /Length $len4 >>\nstream\n  BT\n    /" .
         "F1 12 Tf\n    0 3 Td\n    ($text) Tj\n  ET\nendstream\nendobj\n\nxr" .
         "ef\n0 5\n0000000000 65535 f \n0000000018 00000 n \n0000000077 00000" .
         " n \n$xr3 00000 n \n$xr4 00000 n \ntrailer\n  <<  /Root 1 0 R\n    " .
         "  /Size 5\n  >>\nstartxref\n$xrstart\n%%EOF";
}

?>

नोट: txt2pdf()फ़ंक्शन ब्रेंडन ज़ागेस्की द्वारा बनाई गई एक न्यूनतम पीडीएफ फाइल पर आधारित है ।


ट्रोल कहाँ है?
नसीब नेम

5

UNIX सिस्टम पर:

mv document.docx document.pdf && cowsay "code-trolling is cool"

विंडोज पर:

ren document.docx document.pdf

3
नोट: निश्चित रूप से काम नहीं करेगा ... बस यह हास्यास्पद पाया
s3lph

4

मेरा मानना ​​है कि इस शेल स्क्रिप्ट में समस्या को हल करने का एक सरल और सहज तरीका है। क्या कोई बेहतर तरीका है?

( echo $'<svg>\n<text y="10">';
  unzip -p ./YOUR_FILENAME_HERE.docx word/document.xml |
  sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g';
  echo $'\n</text>\n</svg>' ) |
inkscape -f /dev/fd/0 -D -A ./OUTPUT_FILENAME_HERE.pdf

1
"यह क्यों फ्लॉपी को स्वैप करता है?";)
hildred


0

विंडोज बैच

किसी फ़ाइल को परिवर्तित करने का सबसे आसान तरीका: एक्सटेंशन बदलें!

:: convert.cmd

xcopy "%~dpnx0" "%~dpn0.pdf"

Spoiler / ट्रोल: (देखने के लिए नीचे मंडराना)

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.