2012-11-27 17 views
5

की एक बहु समस्या का सामना करना पड़ रहा हूँ निम्नलिखित के रूप में है नहीं है द्वारा एक PDF फ़ाइल घूर्णन। मेरे पास एक स्रोत दस्तावेज़ है, src.pdf।n डिग्री है, जहां n 90

मैं n डिग्री, जहां n 90.

किसी भी मदद की एक बहु की सराहना की जाएगी, धन्यवाद नहीं है द्वारा target.pdf में src.pdf की सामग्री, घुमाया डालना होगा।

संपादित करें 1:

पीडीएफ में कोई टिप्पणी में शामिल है।

मैं अधिमानतः सी #/पायथन/रूबी/पर्ल में किसी भी समाधान जो उपयोगिताओं पर निर्भर करता है का उपयोग कर सकते हैं, या अपने खुद के कोड लिखने,, लेकिन एक भाषा तक ही सीमित नहीं।

मंच Windows Server 2008 R2 है, मैं मौजूदा सर्वर से चिपक पसंद करते हैं लेकिन लिनक्स भी एक विकल्प है। नवीनतम (स्थिर) GhostScript और pdftk पहले से ही स्थापित हैं।

+2

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

+1

हाय @ एमकेएल, मैंने प्रश्न संपादित किया है और इन विवरणों को प्रतिक्रिया में जोड़ा है, धन्यवाद। – Roman

उत्तर

10

एक नई भाषा एक समस्या नहीं है, तो लेटेक्स एक विकल्प हो सकता है। आप एक टीएक्स फ़ाइल में एक आकृति के रूप में एक पीडीएफ शामिल कर सकते हैं, और आप समर्पित विकल्प का उपयोग करने में सक्षम होंगे जैसे कि rescaling और rotating function। फिर, इसे एक नया पीडीएफ प्राप्त करने के लिए संकलित करें। बहुत सरल निम्नलिखित कोड मेरे लिए काम करता है:

\documentclass[a4paper]{article} 
\usepackage{graphicx} 

\begin{document} 

\includegraphics[scale=0.5,angle=10]{test.pdf} 

\end{document} 

इस पीडीएफ से:

str

मैं इस नया प्राप्त:

enter image description here

हालांकि यह कुछ की आवश्यकता होगी मैन्युअल समायोजन जो आप चाहते हैं उसे प्राप्त करने के लिए ...

+2

दिलचस्प दृष्टिकोण! – yms

+3

वास्तव में, मुझे विश्वविद्यालय के दिनों की याद दिलाता है ...;) जब तक रोमन पहले से ही अपने सिस्टम पर टीएक्स का उपयोग नहीं करता है, हालांकि, यह कार्य को देखते हुए काफी बड़ा इंस्टॉल दिखता है। – mkl

+1

मैंने पीडीएफएलएटीएक्स के साथ जाने का फैसला किया, क्योंकि यह एक ही, मुक्त उपकरण में सभी आवश्यक शिफ्ट, कट, कन्वर्ट और घुमावदार संचालन प्रदान करता है। टिप के लिए बहुत बहुत धन्यवाद! – Roman

3

मैं कुछ सॉफ्टवेयर है जो यह कर सकते हैं लिखा है:

cpdf -rotate-सामग्री 45 in.pdf -ओ out.pdf

Commercial, मुझे डर लग रहा। manual के अध्याय 3 देखें।

+1

मैंने सीपीडीएफ की कोशिश की है और वास्तव में यह काम करता है, और यह अच्छी तरह से करता है। आपके टूल के लिए उत्कृष्ट ई-मेल समर्थन के लिए भी प्रशंसा और धन्यवाद। मैं वर्तमान में पीडीएफएलएटीएक्स समाधान के साथ आगे बढ़ रहा हूं, लेकिन आपका उत्तर भी योग्यता प्राप्त करता है। – Roman

4

जब से तुम एनोटेशन से निपटने के लिए नहीं है, आप देखेंगे कि आप पीडीएफ शब्दकोशों विघटित और पेज की सामग्री को डिकोड करने की अनुमति देता है अपनी पसंद के किसी पीडीएफ लाइब्रेरी का उपयोग कर की कोशिश कर सकते। [क्योंकि θ पाप θ क्योंकि θ 0 0 -पाप θ]

मैं एडोब PDF Reference Document पर एक नज़र लेने की सलाह देते हैं, विशेष रूप से: एक बार जब आप पेज की सामग्री पाने के लिए, आप एक transformation matrix पेज की शुरुआत में सम्मिलित कर सकते हैं परिवर्तन मैट्रिक्स के बारे में खंड।

उदाहरण के लिए आप निम्न पृष्ठ सामग्री की वस्तु है (40 0 obj):

10 0 obj % Page object 
<< /Type /Page 
/Parent 5 0 R 
/Resources 20 0 R 
/Contents 40 0 R 
>> 
endobj 
40 0 obj % Page content 
BT 
/F1 1 Tf 
12 0 0 12 100 600 Tm 
(Hello) Tj 
ET 
endobj 

और तुम 45 डिग्री से पूरे पृष्ठ को घुमाने के लिए, यह सोचते हैं क्योंकि (45) = पाप (45) चाहते हैं = 0.7, अपने जिसके परिणामस्वरूप पेज की सामग्री हो जाएगा:

40 0 obj 
0.7 0.7 -0.7 0.7 0 0 cm 
BT 
/F1 1 Tf 
12 0 0 12 100 600 Tm 
(Hello) Tj 
ET 
endobj 

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

iText विघटित और पीडीएफ फाइलों को संयोजित कर सकते हैं। विवरण के लिए विधि PdfReader.getPageContent देखें।

+0

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

+1

@BGM यदि आपको केवल एक फ़ाइल को संसाधित करने की आवश्यकता है, तो इसे आजमाएं: http://stackoverflow.com/a/12630604/501196 एक बार जब आप "डिकंप्रेस्ड" पीडीएफ प्राप्त कर लेते हैं, तो आप इच्छानुसार प्रत्येक पृष्ठ सामग्री को संशोधित कर सकते हैं। Xref तालिका भ्रष्ट हो जाएगी, लेकिन आप शायद इसे उसी टूल के साथ सुधार सकते हैं। – yms

+0

कि qpdf एक साफ चीज की तरह दिखता है जो मुझे अपने repoitoire में होना है! संदर्भ के लिए धन्यवाद। +1 – bgmCoder

5

यह एक उदाहरण है जो दिखाता है कि जावा और iText लाइब्रेरी का उपयोग करके इसे कैसे किया जाए। कम से कम परिवर्तनों के साथ कोड को सी # और iTextSharp के साथ उपयोग करने योग्य होना चाहिए, नमूना @neo देना उनके उत्तर में छोटी सूचना प्रदान नहीं कर सका।

नमूना source.pdf के पहले पृष्ठ 2 * pi/12 की अर्थात लेता है और 30 डिग्री के सभी गुणकों में target.pdf में सम्मिलित करता है,, लेकिन जैसा कि उस कोण स्पष्ट रूप से कोड में दी गई है, तो आप किसी भी कोण से बारी बारी से कर सकते हैं।

Document document = new Document(); 
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("target.pdf")); 
document.open(); 

PdfReader origPdfReader = new PdfReader("source.pdf"); 
PdfImportedPage importedPage = writer.getImportedPage(origPdfReader, 1); 

PdfContentByte canvas = writer.getDirectContent(); 
for (int i = 0; i < 12; i++) 
{ 
    AffineTransform transform = AffineTransform.getRotateInstance(Math.PI * i/6.0, 
     importedPage.getWidth()/2, importedPage.getHeight()/2); 
    canvas.addTemplate(importedPage, transform); 
    document.newPage(); 
} 
document.close(); 

आपके उपयोग के मामले के आधार पर आप को घुमाने के लिए केवल नहीं चाहते हो सकता है (के रूप में आप के लिए कहा) लेकिन यह भी इसे नीचे पैमाने पर करने के पेज फिट करने के लिए। उस स्थिति में transform का उपयोग करने से पहले बस transform.scale(scaleX, scaleY) जोड़ें। हर पृष्ठ -

\documentclass{article} 
\usepackage{pdfpages} 

\begin{document} 
    \includepdf[pages={-},angle=30]{main} 
\end{document} 

यह संपूर्ण पीडीएफ बारी बारी से होगा:

4

आप इस तरह TexLive साथ यह कर सकते हैं!

मैं नहीं एक है जो इस समझ से बाहर है, तथापि - check this thread for the original solution (! और उस साथी एक अंक देना)

संबंधित मुद्दे