यहां वह प्रक्रिया है जिसका मैंने उपयोग करके समाप्त किया। मेरे द्वारा उपयोग किया जाने वाला मुख्य उपकरण इंकस्केप था जो पाठ को ठीक से परिवर्तित करने में सक्षम था।
- पीडीएफ शीट को विभाजित करने के लिए जावास्क्रिप्ट के साथ एडोब एक्रोबैट प्रो क्रियाओं का उपयोग किया
- SVG में परिवर्तित करने के लिए Windows Cmd से Inkscape पोर्टेबल 0.48.5 भाग गया
- कुछ विशेष एसवीजी एक्सएमएल विशेषता के लिए कुछ मैनुअल संपादन मैंने किया था जिसमें विंडोज सीएमडी और विंडोज पॉवरशेल का उपयोग करके समस्या थी
अलग पेज: जावास्क्रिप्ट के साथ एडोब एक्रोबैट प्रो
Adobe Acrobat Pro Actions (पूर्व में बैच प्रोसेसिंग) का उपयोग करके PDF पेजों को अलग-अलग फाइलों में अलग करने के लिए एक कस्टम एक्शन बनाया जाता है। वैकल्पिक रूप से आप घोस्टस्क्रिप्ट के साथ पीडीएफ को विभाजित करने में सक्षम हो सकते हैं
पृष्ठों को विभाजित करने के लिए एक्रोबेट जावास्क्रिप्ट एक्शन
/* Extract Pages to Folder */
var re = /.*\/|\.pdf$/ig;
var filename = this.path.replace(re,"");
{
for ( var i = 0; i < this.numPages; i++ )
this.extractPages
({
nStart: i,
nEnd: i,
cPath : filename + "_s" + ("000000" + (i+1)).slice (-3) + ".pdf"
});
};
एसवीजी रूपांतरण के लिए पीडीएफ: विंडोज सीएमडी बैच फ़ाइल के साथ इंकस्केप
विंडोज सीएमडी का उपयोग करके एक फ़ोल्डर में सभी पीडीएफ फाइलों के माध्यम से लूप में बैच फ़ाइल बनाई गई और उन्हें एसवीजी में परिवर्तित करें
वर्तमान फ़ोल्डर में पीडीएफ को एसवीजी में बदलने के लिए बैच फ़ाइल
:: ===== SETUP =====
@echo off
CLS
echo Starting SVG conversion...
echo.
:: setup working directory (if different)
REM set "_work_dir=%~dp0"
set "_work_dir=%CD%"
:: setup counter
set "count=1"
:: setup file search and save string
set "_work_x1=pdf"
set "_work_x2=svg"
set "_work_file_str=*.%_work_x1%"
:: setup inkscape commands
set "_inkscape_path=D:\InkscapePortable\App\Inkscape\"
set "_inkscape_cmd=%_inkscape_path%inkscape.exe"
:: ===== FIND FILES IN WORKING DIRECTORY =====
:: Output from DIR last element is single carriage return character.
:: Carriage return characters are directly removed after percent expansion,
:: but not with delayed expansion.
pushd "%_work_dir%"
FOR /f "tokens=*" %%A IN ('DIR /A:-D /O:N /B %_work_file_str%') DO (
CALL :subroutine "%%A"
)
popd
:: ===== CONVERT PDF TO SVG WITH INKSCAPE =====
:subroutine
echo.
IF NOT [%1]==[] (
echo %count%:%1
set /A count+=1
start "" /D "%_work_dir%" /W "%_inkscape_cmd%" --without-gui --file="%~n1.%_work_x1%" --export-dpi=300 --export-plain-svg="%~n1.%_work_x2%"
) ELSE (
echo End of output
)
echo.
GOTO :eof
:: ===== INKSCAPE REFERENCE =====
:: print inkscape help
REM "%_inkscape_cmd%" --help > "%~dp0\inkscape_help.txt"
REM "%_inkscape_cmd%" --verb-list > "%~dp0\inkscape_verb_list.txt"
क्लीनअप विशेषताएँ: विंडोज सीएमडी और पॉवरशेल
मुझे एहसास है कि एसवीजी या एक्सएमएल टैग या संभावित रूपांतरों के कारण विशेषताओं को संपादित करने के लिए मैन्युअल रूप से क्रूर बल को संपादित करना सबसे अच्छा अभ्यास नहीं है और इसके बजाय एक्सएमएल पार्सर का उपयोग करना चाहिए। हालाँकि मेरे पास एक साधारण मुद्दा था जहां एक ड्राइंग पर स्ट्रोक की चौड़ाई बहुत छोटी थी, और दूसरे पर फ़ॉन्ट परिवार को गलत तरीके से पहचाना जा रहा था, इसलिए मैंने मूल रूप से एक सरल खोज करने और बदलने के लिए पिछले विंडोज सीएमडी बैच स्क्रिप्ट को संशोधित किया। केवल परिवर्तन खोज स्ट्रिंग परिभाषा में थे और PowerShell कमांड को कॉल करने के लिए बदल रहे थे। पॉवरशेल कमांड एक खोज और बदलेगा और एक संशोधित प्रत्यय के साथ संशोधित फाइल को बचाएगा। मुझे कुछ अन्य संदर्भ मिले जिनका बेहतर परिणाम देने के लिए इस्तेमाल किया जा सकता था या परिणामी एसवीजी फाइलों को संशोधित किया जा सकता था अगर कुछ अन्य मामूली सफाई की आवश्यकता होती है।
एसवीजी एक्सएमएल डेटा को मैन्युअल रूप से खोजने और बदलने के लिए संशोधन
:: setup file search and save string
set "_work_x1=svg"
set "_work_x2=svg"
set "_work_s2=_mod"
set "_work_file_str=*.%_work_x1%"
powershell -Command "(Get-Content '%~n1.%_work_x1%') | ForEach-Object {$_ -replace 'stroke-width:0.06', 'stroke-width:1'} | ForEach-Object {$_ -replace 'font-family:Times Roman','font-family:Times New Roman'} | Set-Content '%~n1%_work_s2%.%_work_x2%'"
आशा है कि यह किसी की मदद कर सकता है
संदर्भ
Adobe Acrobat Pro Actions और JavaScript अलग पेजों का संदर्भ देते हैं
GhostScript का संदर्भ अलग पेजों से है
एसवीजी रूपांतरण के लिए पीडीएफ के लिए इंकस्केप कमांड लाइन संदर्भ
Windows Cmd बैच फ़ाइल स्क्रिप्ट संदर्भ
XML टैग / विशेषता प्रतिस्थापन अनुसंधान