PDFSizeOpt هو برنامج لتحويل ملفات PDF الكبيرة إلى مصنوعات صغيرة ، دون تقليل الجودة المرئية أو إزالة الميزات التفاعلية (مثل الارتباطات التشعبية). وبشكل أكثر تحديداً ، يعد PDFSizeOpt تطبيقًا مجانيًا وعابرًا لخط الأوامر (لـ Linux و Windows و MacOs و UNIX) ومجموعة من أفضل الممارسات لتحسين حجم ملفات PDF ، مع التركيز على PDFs التي تم إنشاؤها من مستندات Tex و Latex. تتم كتابة PDFSizeOpt في Python ، لذلك فهي بطيئة بعض الشيء ، لكنها تفريغ بعض الأعمال الثقيلة إلى تبعياتها الأسرع (C ، C ++ و Java).
ألا يعمل PDFSizeOpt مع PDF الخاص بك؟ أبلغ عن المشكلة هنا: https://github.com/pts/pdfsizeopt/issues
أرسل تبرعات إلى مؤلف PDFSizeOpt: https://flattr.com/submit/auto؟user_id=PTS&url=https://github.com/pts/pdfsizeopt
إذا كانت هذه هي المرة الأولى التي تحاول فيها تجربة pdfizeopt ، فاتبع هذه التعليمات. (تم تحديث هذا القسم في 2023-02-15.)
من السهل تثبيت وتشغيل PDFSizeOpt على أنظمة Linux و Windows الحديثة مع معالج X86. إذا كان لديك مثل هذا النظام ، فانتقل مباشرة إلى أحد الأقسام التالية ( تعليمات التثبيت والاستخدام في Linux أو تعليمات التثبيت والاستخدام على Windows ). سوف يستغرق أقل من 5 دقائق.
من السهل تثبيت وتشغيل PDFSizeOpt على جهاز Mac (يتم دعم كل من معالجات Intel X86 ومعالجات ARM باستخدام سيليكون Apple). إذا كان لديك مثل هذا النظام ، فانتقل مباشرة إلى تعليمات تثبيت القسم والاستخدام على MacOS ( لا تستخدم Docker). سوف يستغرق أقل من 5 دقائق.
بدلاً من ذلك (ولكن لا ينصح به لأنه أبطأ) ، من الممكن تشغيل pdfsizeopt داخل Docker على الأنظمة التالية: Linux AMD64 ، MacOS 64-bit Intel X86 (AMD64 ، X86_64) ، ARM MacOS 64-Bit (Apple Silicon ، EG M1 أو M2 رقاقة). بعد ذلك ، قفز مباشرة إلى تعليمات تثبيت القسم والاستخدام مع Docker على Linux و MacOS . ستستغرق تلك الخطوة الأخيرة أقل من 5 دقائق.
إذا كنت تستخدم نظام تشغيل آخر غير Linux أو Windows أو MacOS (على جهاز كمبيوتر مع معالج Intel) ، فإن أسهل طريقة لتجربة PDFSizeOpt هي استعارة كمبيوتر صديق مع Linux أو Windows أو MacOS أو استئجار Linux VM في السحابة. السبب وراء صعوبة تشغيل pdfsizeOpt على أنواع أخرى من الأنظمة هو أن pdfsizeOpt لديه بعض التبعيات المطلوبة ، وبعضها عبارة التبعيات أولاً ، والتي قد تستغرق عدة ساعات والكثير من المحببة المحبطة للتجربة والخطأ حتى للمتسللين ذوي الخبرة.
من الممكن من الناحية الفنية نقل pdfsizeopt إلى أنظمة أخرى (وجعلها سهلة التثبيت) ، لكن مؤلف PDFSizeOpt ليس لديه وقت الفراغ لإنشاء مثل هذا المنفذ والحفاظ عليه. باعتباره لمعلوماتك ، انظر #154 حول النقل إلى Apple Silicon.
لا يوجد تثبيت ، تحتاج إلى تشغيل بعض الأوامر في سطر الأوامر للتنزيل والتثبيت. PDFSizeOpt هو تطبيق سطر الأوامر فقط ، لا يوجد واجهة المستخدم الرسومية.
لتثبيت PDFSizeOpt على نظام Linux (مع الهندسة المعمارية I386 أو AMD64) ، افتح نافذة طرفية وقم بتشغيل هذه الأوامر (بدون قيادة $
):
$ mkdir ~/pdfsizeopt
$ cd ~/pdfsizeopt
$ wget -O pdfsizeopt_libexec_linux.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_libexec_linux-v9.tar.gz
$ tar xzvf pdfsizeopt_libexec_linux.tar.gz
$ rm -f pdfsizeopt_libexec_linux.tar.gz
$ wget -O pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
$ chmod +x pdfsizeopt.single
$ ln -s pdfsizeopt.single pdfsizeopt
لتحسين PDF ، قم بتشغيل الأمر التالي:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
إذا كان لدى PDF الإدخال العديد من الصور أو الصور الكبيرة ، فقد يكون PDFSizeOpt بطيئًا للغاية. يمكنك تسريعه عن طريق تعطيل pngout ، أبطأ طريقة تحسين الصورة ، مثل هذا:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
يقوم PDFSizeOpt بإنشاء الكثير من الملفات المؤقتة (PSOTMP.*) في دليل الإخراج ، ولكنه ينظف أيضًا نفسه.
من الممكن تحسين PDF خارج الدليل الحالي. للقيام بذلك ، حدد اسم المسار (بما في ذلك اسم الدليل) في سطر الأوامر.
يرجى ملاحظة أن الأوامر أعلاه تنزيل جميع التبعيات (بما في ذلك Python و Ghostscript) أيضًا. من الممكن تثبيت بعض التبعيات مع مدير الحزمة الخاص بك ، ولكن هذه الخطوات تعتبر بديلة وأكثر تعقيدًا ، وبالتالي لا يتم تغطيتها هنا.
يرجى ملاحظة أن PDFSizeOpt يعمل بشكل مثالي على أي نظام X86 و AMD64 Linux. لا يوجد أي قيود على LIBC وتوزيع Linux وما إلى ذلك. لأن PDFSizeOpt لا يستخدم سوى Executables X86 المرتبطة بشكل ثابت ، ولا يستخدم أي أوامر خارجية (بخلاف PDFSizeOpt و PDFSizeOpt.Single و PDFSizeOpt_Libexec/*) على النظام. يعمل PDFSizeOpt أيضًا بشكل مثالي على أنظمة X86 FreeBSD مع تمكين طبقة مضاونة Linux.
لتجنب كتابة ~/pdfsizeopt/pdfsizeopt ، أضف "$ home/pdfsizeopt" إلى طريقك (ربما في ~/.bashrc) ، فتح نافذة طرفية جديدة ، وسيعمل الأمر pdfsizeopt من أي دليل.
يمكنك أيضًا وضع pdfsizeopt على دليل آخر غير ~/pdfsizeOpt ، كما تريد.
بالإضافة إلى ذلك ، يمكنك تثبيت بعض عواطف الصور الإضافية (انظر المزيد في قسم محسّنات الصور أدناه):
$ cd ~/pdfsizeopt
$ wget -O pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2017-01-24/pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz
$ tar xzvf pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz
$ rm -f pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz
لا يوجد تثبيت ، تحتاج إلى تشغيل بعض الأوامر في سطر الأوامر (نافذة موجه الأوامر الأسود) للتنزيل والتثبيت. PDFSizeOpt هو تطبيق سطر الأوامر فقط ، لا يوجد واجهة المستخدم الرسومية.
إنشاء المجلد C: pdfsizizeOpt ، قم بتنزيل https://github.com/pts/pdfsizeopt/release/download/2023-04-18/pdfsizeopt_win32exec-v9 الملف C: pdfsizeOpt pdfsizeOpt.exe موجود.
تنزيل https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single وحفظه على c: pdfsizeopt ، مثل c: pdfsizeopt pdfsizeopt.single.
لتحسين PDF ، قم بتشغيل الأمر التالي:
C:pdfsizeoptpdfsizeopt input.pdf output.pdf
في سطر الأوامر ، وهو نافذة موجه أوامر أسود ، يمكنك بدء تشغيله بواسطة قائمة بدء / تشغيل / cmd.exe ، أو العثور على موجه الأوامر في قائمة START.
(اضغط على علامة التبويب للحصول على إكمال اسم الملف أثناء الكتابة.)
نظرًا لأنه يتعين عليك كتابة اسم ملف الإدخال كاسم كامل ، يوصى بإنشاء دليل يحمل اسمًا قصيرًا (على سبيل المثال C: pdfs) ، ونسخ PDF الإدخال هناك أولاً.
إذا كان لدى PDF الإدخال العديد من الصور أو الصور الكبيرة ، فقد يكون PDFSizeOpt بطيئًا للغاية. يمكنك تسريعه عن طريق تعطيل pngout ، أبطأ طريقة تحسين الصورة ، مثل هذا:
C:pdfsizeoptpdfsizeopt --use-pngout=no input.pdf output.pdf
لتجنب كتابة c: pdfsizeopt pdfsizeopt ، أضف c: pdfsizeopt إلى (نهاية) مسار النظام ، فتح نافذة موجه الأوامر الجديدة ، وسيعمل الأمر pdfsizeopt
من أي دليل.
اعتمادًا على بيئتك ، قد لا تعمل أسماء الملفات ذات الأحرف المحملة في إصدار Windows من PDFSizeOpt. لتشغيله آمنًا ، تأكد من أن ملفات الإدخال والإخراج الخاصة بك لها أسماء بأحرف وأرقام ودراسة سطحية (_) و DASH (-) و DOT (.) و Plus (+). يعد كل من Backslash () و Slash (/) كلاهما على ما يرام مثل فاصل الدليل.
يجب أن تعمل المساحات في أسماء الملفات وأسماء المسارات ، ولكن تحتاج إلى وضع عروض أسعار مزدوجة (") حول الاسم.
لن تعمل أسماء الملفات التي تحتوي على بعض أحرف علامات الترقيم (مثل الاقتباس المزدوج (") وعلامة الاستفهام (؟) و Asterisk ()) والأحرف غير القابلة للطباعة (مثل NewLine) على Windows. وهذا لأن Windows لا يدعم هذه الأحرف ([[[[[ x00 .. x1f " : <>؟ | x7f] في أسماء الملفات على الإطلاق ، ويستخدم / و كفاصل دليل.
يمكنك أيضًا وضع PDFSizeOpt على دليل آخر غير C: pdfsizeOpt ، ولكنه لن يعمل إذا كان هناك مساحة بيضاء أو توجد أحرف معلمة في أي من أسماء المجلدات.
يرجى ملاحظة أن PDFSizeOpt يعمل بشكل مثالي في النبيذ (تم اختباره مع Wine-1.2 على Ubuntu Lucid و Wine-1.6.2 على Ubuntu Trusty) ، لكنه أبطأ قليلاً من تشغيله أصلاً (كبرنامج Linux أو UNIX).
تعمل هذه الإرشادات على الأنظمة التالية: Linux AMD64 ، MACOS 64-BIT Intel X86 (AMD64 ، X86_64) ، ARM MACOS 64 بت (Silicon Apple ، EG M1 أو M2). لا يهم إصدار Linux أو MacOS (أنظمة قديمة مثل MacOS Leopard 10.5 تعمل أيضًا) ، طالما أنه تم تثبيت Docker والعمل.
يتم تجميع البرامج في Docker Image PTSPTS/PDFSizeOPT لـ Linux I386 (32 بت intel x86) ، وتحدث هذه الثنائيات في جميع المنصات المذكورة أعلاه ، حتى مع سيليكون Apple. (تم اختباره في 2023-02-21.)
لا يوجد تثبيت ، تحتاج إلى تشغيل بعض الأوامر في سطر الأوامر للتنزيل والتثبيت. PDFSizeOpt هو تطبيق سطر الأوامر فقط ، لا يوجد واجهة المستخدم الرسومية.
أولاً ، تأكد من تثبيت Docker بشكل صحيح عن طريق تشغيل هذا الأمر والتحقق من موافق في النهاية:
docker version && echo OK
إذا لم تكن على ما يرام ، لأنه لم يتم العثور على أمر "Docker" ، فلن يتم تثبيت Docker على جهاز الكمبيوتر الخاص بك. تعليمات التثبيت (في 2023-02-22):
لتثبيت Docker على Linux ، لديك خياران: Docker Engine (https://docs.docker.com/engine/install/ ، داخل قسم الخادم) أو Docker Desktop (https://docs.docker.com/desktop/ تثبيت/linux-install/). أي منهم سيعمل.
لتثبيت Docker على MacOS ، قم بتثبيت سطح مكتب Docker (https://docs.docker.com/desktop/install/mac-install/).
ثم (على MacOS) ، أضف الأمر docker
إلى مسارك عن طريق تشغيل الأمر التالي (قم بنسخه ، لا تكتب ، لتجنب الأخطاء المطبعية):
(echo; echo 'export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH"') >>~/.profile
ثم (على MacOS) ، أغلق التطبيق الطرفي ، وفتحه مرة أخرى (بحيث يتغير إلى ~/.profile يسري ساري المفعول).
بعد التثبيت ، أعد إعادة محاولة أمر docker version
أعلاه.
قم بإزالة أي صور Docker السابقة لـ PDFSizeOpt:
docker image rm ptspts/pdfsizeopt
قم بتشغيل تحسين الاختبار ، والذي يمارس جميع تبعيات PDFSizeOpt:
curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt deptest.pdf
إذا تلقيت رسالة تحذير (غير ضارة) مثل
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
، ولا تريد الحصول عليها مرة أخرى ، ثم إضافة --platform linux/amd64
بعد -it
:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it --platform linux/amd64 ptspts/pdfsizeopt pdfsizeopt deptest.pdf
لتحسين PDF ، قم بتشغيل هذا الأمر:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt input.pdf output.pdf
إذا كان لدى PDF الإدخال العديد من الصور أو الصور الكبيرة ، فقد يكون PDFSizeOpt بطيئًا للغاية. يمكنك تسريعه عن طريق تعطيل pngout ، أبطأ طريقة تحسين الصورة ، مثل هذا:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt --use-pngout=no input.pdf output.pdf
يقوم PDFSizeOpt بإنشاء الكثير من الملفات المؤقتة (PSOTMP.*) في دليل الإخراج ، ولكنه ينظف أيضًا نفسه.
من الممكن تحسين PDF خارج الدليل الحالي. للقيام بذلك ، حدد اسم المسار (بما في ذلك اسم الدليل) في سطر الأوامر.
لتجنب كتابة أمر طويل ، قم بالتشغيل
(echo '#! /bin/sh'; echo 'exec docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt "$@"') >pdfsizeopt && chmod 755 pdfsizeopt
، ثم انسخ نص PDFSizeOpt إلى مسارك ، ثم افتح نافذة طرفية جديدة ، والآن سيعمل هذا الأمر أيضًا على تحسين ملف PDF:
pdfsizeopt input.pdf output.pdf
يرجى ملاحظة أن صورة PTSPTS/PDFSizeOpt Docker يتم تحديثها نادرًا للغاية. لاستخدام إصدار أكثر تحديثًا من PDFSizeOpt ، قم بتشغيل هذه الأوامر لتنزيل:
curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
chmod +x pdfsizeopt.single
ثم قم بتشغيل هذا الأمر لتحسين PDF:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt ./pdfsizeopt.single --use-pngout=no input.pdf output.pdf
إذا كنت ترغب في الحصول على مُحسّنات صور إضافية على Linux ، فاستخدم PTSPTS/PDFSizeOpt-With-extraimgopt بدلاً من PTSPTS/PDFSizeOPT في الأوامر أعلاه. مثال:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt-with-extraimgopt pdfsizeopt --use-image-optimizer=sam2p,jbig2,pngout,zopflipng,optipng,advpng,ECT input.pdf output.pdf
تعمل هذه التعليمات على Macs مع MacOS Catalina 10.15 (وحتى أقدم ، وربما Macos Snow Leopard 10.6)-Macos Ventura 13 (وحتى الأحدث) ، مع معالج ذراع 64 بت (Apple Silicon) أو 64 بت Intel X86 ( x86_64 ، AMD64) معالج. يتم تجميع البرامج لمعالجات Intel X86 64 بت ، وهي تعمل على معالجات ذراع 64 بت ، باستخدام مضاهاة Rosetta 2 في MacOS. تم اختبار هذه التعليمات والمعروفة للعمل على MacOS Ventura 13.3 ، سواء مع معالج Intel X86 64 بت (x86_64 ، AMD64) وسيليكون التفاح (معالج الذراع).
إذا كان لديك جهاز Mac OS X OS X Leopard 10.5 - MacOS Mojave 10.14 ، اتبع تعليمات تثبيت القسم والاستخدام على MacOS الأقدم بدلاً من ذلك.
لم يتم اختبار هذه التعليمات بعد. انظر #154 للحصول على تحديثات التقدم.
لا يوجد تثبيت ، تحتاج إلى تشغيل بعض الأوامر في سطر الأوامر للتنزيل والتثبيت. PDFSizeOpt هو تطبيق سطر الأوامر فقط ، لا يوجد واجهة المستخدم الرسومية.
لتثبيت PDFSizeOpt على نظام MacOS ، افتح نافذة طرفية وقم بتشغيل هذه الأوامر (بدون قيادة $
):
$ mkdir ~/pdfsizeopt
$ cd ~/pdfsizeopt
$ curl -L -o pdfsizeopt_libexec_darwin.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_libexec_darwinc64-v9.tar.gz
$ tar xzvf pdfsizeopt_libexec_darwin.tar.gz
$ rm -f pdfsizeopt_libexec_darwin.tar.gz
$ curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
$ chmod +x pdfsizeopt.single
$ ln -s pdfsizeopt.single pdfsizeopt
قم بتشغيل تحسين الاختبار ، والذي يمارس جميع تبعيات PDFSizeOpt:
$ curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
$ ~/pdfsizeopt/pdfsizeopt deptest.pdf
... وفتح (عرض) deptest.pdf والكمال المحسن المقابل. pso.pdf.
لتحسين PDF ، قم بتشغيل الأمر التالي:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
إذا كان لدى PDF الإدخال العديد من الصور أو الصور الكبيرة ، فقد يكون PDFSizeOpt بطيئًا للغاية. يمكنك تسريعه عن طريق تعطيل pngout ، أبطأ طريقة تحسين الصورة ، مثل هذا:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
أيضًا ، إذا كان لديك MAC 32 بت ، فلن يعمل PNGOUT المجمع باستخدام pDFSizeOpt (لأنه يحتاج إلى MAC 64 بت) ، لذلك عليك فرض-استخدام pngout = لا. راجع مُحسِّنات صورة القسم للحصول على بدائل PNGOUT.
يقوم PDFSizeOpt بإنشاء الكثير من الملفات المؤقتة (PSOTMP.*) في دليل الإخراج ، ولكنه ينظف أيضًا نفسه.
من الممكن تحسين PDF خارج الدليل الحالي. للقيام بذلك ، حدد اسم المسار (بما في ذلك اسم الدليل) في سطر الأوامر.
يرجى ملاحظة أن الأوامر أعلاه تنزيل معظم التبعيات (بما في ذلك Ghostscript ، ولكن باستثناء Python) أيضًا. يجب أن يعمل كل شيء على النحو المذكور أعلاه ، خارج الصندوق. إذا كنت تواجه مشاكل ، فيرجى الإبلاغ عن مشكلة على https://github.com/pts/pdfsizeopt/issues.
لتجنب كتابة ~/pdfsizeopt/pdfsizeopt ، أضف "$ home/pdfsizeopt" إلى طريقك (ربما في ~/.bashrc) ، فتح نافذة طرفية جديدة ، وسيعمل الأمر pdfsizeopt من أي دليل.
يمكنك أيضًا وضع pdfsizeopt على دليل آخر غير ~/pdfsizeOpt ، كما تريد.
يجب أن تعمل هذه الإرشادات على Macs الأقدم التي تعمل على تشغيل Mac OS X Leopard 10.5-MacOS Mojave 10.14 ، وذات معالج Intel X86 32 بت أو 64 بت. يتم تجميع البرامج لمعالج Intel X86 (I386) 32 بت (وأيضًا العمل على معالج Intel 64 بت مع MacOS Mojave 10.14 أو قبل ذلك) ، باستثناء أداة PNGOUT ، التي تحتاج إلى ما لا يقل عن Mac OS X Snow Leopard 10.6 و معالج Intel 64 بت.
لا يوجد تثبيت ، تحتاج إلى تشغيل بعض الأوامر في سطر الأوامر للتنزيل والتثبيت. PDFSizeOpt هو تطبيق سطر الأوامر فقط ، لا يوجد واجهة المستخدم الرسومية.
لتثبيت PDFSizeOpt على نظام MACOS الأقدم ، افتح نافذة طرفية وقم بتشغيل هذه الأوامر (بدون $
):
$ mkdir ~/pdfsizeopt
$ cd ~/pdfsizeopt
$ curl -L -o pdfsizeopt_libexec_darwin.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_libexec_darwin-v9.tar.gz
$ tar xzvf pdfsizeopt_libexec_darwin.tar.gz
$ rm -f pdfsizeopt_libexec_darwin.tar.gz
$ curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
$ chmod +x pdfsizeopt.single
$ ln -s pdfsizeopt.single pdfsizeopt
قم بتشغيل تحسين الاختبار ، والذي يمارس جميع تبعيات PDFSizeOpt:
$ curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
$ ~/pdfsizeopt/pdfsizeopt deptest.pdf
... وفتح (عرض) deptest.pdf والكمال المحسن المقابل. pso.pdf.
لتحسين PDF ، قم بتشغيل الأمر التالي:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
إذا كان لدى PDF الإدخال العديد من الصور أو الصور الكبيرة ، فقد يكون PDFSizeOpt بطيئًا للغاية. يمكنك تسريعه عن طريق تعطيل pngout ، أبطأ طريقة تحسين الصورة ، مثل هذا:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
أيضًا ، إذا كان لديك جهاز Mac مع معالج Intel X86 32 بت ، فلن يعمل PNGout المجمع بـ PDFSizeOpt (لأنه يحتاج إلى معالج 64 بت) ، لذلك يجب عليك فرض-استخدام pngout = لا. راجع مُحسِّنات صورة القسم للحصول على بدائل PNGOUT.
يقوم PDFSizeOpt بإنشاء الكثير من الملفات المؤقتة (PSOTMP.*) في دليل الإخراج ، ولكنه ينظف أيضًا نفسه.
من الممكن تحسين PDF خارج الدليل الحالي. للقيام بذلك ، حدد اسم المسار (بما في ذلك اسم الدليل) في سطر الأوامر.
يرجى ملاحظة أن الأوامر أعلاه تنزيل معظم التبعيات (بما في ذلك Ghostscript ، ولكن باستثناء Python) أيضًا. يجب أن يعمل كل شيء على النحو المذكور أعلاه ، خارج الصندوق. إذا كنت تواجه مشاكل ، فيرجى الإبلاغ عن مشكلة على https://github.com/pts/pdfsizeopt/issues.
لتجنب كتابة ~/pdfsizeopt/pdfsizeopt ، أضف "$ home/pdfsizeopt" إلى طريقك (ربما في ~/.bashrc) ، فتح نافذة طرفية جديدة ، وسيعمل الأمر pdfsizeopt من أي دليل.
يمكنك أيضًا وضع pdfsizeopt على دليل آخر غير ~/pdfsizeOpt ، كما تريد.
لا يوجد تثبيت ، تحتاج إلى تشغيل بعض الأوامر في سطر الأوامر للتنزيل والتثبيت. PDFSizeOpt هو تطبيق سطر الأوامر فقط ، لا يوجد واجهة المستخدم الرسومية.
يعمل PDFSizeOpt تمامًا على أنظمة X86 FreeBSD مع تمكين طبقة مضاونة Linux. لذلك ، قم بتمكين طبقة مضاهاة Linux على نظام FreeBSD الخاص بك ، ثم اتبع تعليمات التثبيت والاستخدام على Linux .
على نحو تغيير ، يمكنك اتباع تعليمات التثبيت والاستخدام على UNIX العام ، ولكن هذا يحتاج إلى مزيد من العمل من جانبك (وهو غير مريح ومعرض للخطأ) ، لأنك تحتاج إلى تثبيت العديد من التبعيات بشكل منفصل ، وربما تقوم بتجميع بعضها من المصدر.
إن القيام بذلك أمر صعب بشكل متزايد في عام 2023 ، لأن PDFSizeOpt يحتاج إلى Python 2.4--2.7 و Ghostscript 9.05 ، كلاهما قديم جدًا ، وبالتالي يصعب تثبيته على نظام حديث.
لا يوجد تثبيت ، تحتاج إلى تشغيل بعض الأوامر في سطر الأوامر (نافذة موجه الأوامر الأسود) للتنزيل والتثبيت. PDFSizeOpt هو تطبيق سطر الأوامر فقط ، لا يوجد واجهة المستخدم الرسومية.
pdfizeopt هو نص بيثون. إنه يعمل مع Python 2.4 و 2.5 و 2.6 و 2.7 (لكنه لا يعمل مع Python 3.x). لذا يرجى تثبيت Python أولاً.
إنشاء دليل جديد يسمى pdfsizeOpt ، وقم بتنزيل هذا الرابط هناك: https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
أعد تسميته إلى pdfsizeopt وجعله قابل للتنفيذ من خلال تشغيل الأوامر التالية (بدون $
الرائدة):
$ cd pdfsizeopt
$ mv pdfsizeopt.single pdfsizeopt
$ chmod +x pdfsizeopt
إذا لم يكن Python القابل للتنفيذ/usr/bin/python ، فقم بتحرير السطر الأول (بدءًا من #!
) في البرنامج النصي PDFSizeOpt وفقًا لذلك.
جربه مع:
$ ./pdfsizeopt --version
info: This is pdfsizeopt ZIP rUNKNOWN size=105366.
PDFSizeOpt لديه العديد من التبعيات. للوظائف الكاملة ، تحتاج إلى كل منهم. قم بتثبيت أكبر عدد ممكن ، ووضعها على المسار.
التبعيات:
imgdataopt
كـ sam2p
(eg/usr/local/bin/bin/bin/bin/bin/bin) طريق. إذا لم تتمكن من تثبيته ، فاستخدم PDFSizeOpt-Do-Optimize-Disages = لا. تحتوي بعض توزيعات Linux على ثنائيات SAM2P ، لكنها تميل إلى أن تكون قديمة جدًا. بدلاً من ذلك ، يعمل Sam2P> = 0.49.3 + PNG22PNM أيضًا بدلاً من IMGDATAOPT ، ولكن IMGDATAOPT أسهل في التثبيت.بعد التثبيت ، استخدم pdfsizeopt على النحو التالي:
$ ./pdfsizeopt input.pdf output.pdf
يمكنك إضافة الدليل الذي يحتوي على PDFSizeOpt إلى المسار ، بحيث سيعمل Command pdfsizeopt
من أي دليل.
يمكن لـ PDFSizeOpt استخدام الأدوات الخارجية التالية لصنع الصور في ملفات PDF المضمنة أصغر:
لتمكين أو تعطيل أي مُحسّن للصور ، حدد جميع محسّلات الصور التي تريد تمكينها على هذا النحو:-الاستخدام-Optimizer = optipng ، JBIG2. سيؤدي هذا أيضًا إلى تعطيل PNGOUT الافتراضي.
يمكنك أيضًا تحديد أنماط أوامر مُحسّن الصور المخصصة من خلال تحديد أو استخدام الصورة المنفصلة والاستخدام الإضافية-Optimier = مثل هذا:
--use-image-optimizer="optipng %(sourcefnq)s -o6 -fix -force %(optipng_gray_flags)s-out %(targetfnq)s"
يجب عليك دائمًا تحديد ٪ (TargetFNQ) في نمط الأوامر.
حدد-do-debug-image-optimizers = نعم لمعرفة مُحسّنات الصور التي يتم تمكينها (وخط الأوامر الكامل) للتشغيل الحالي.
عند بدء التشغيل ، يتحقق PDFSizeOpt من أن محسّلات الصور المطلوبة متوفرة (كملفات البرنامج) ، ويفشل إذا كان بعضها مفقودًا. لتجاهل أولئك الذين مفقودون ، حدد-محوّرات صورة-مرجعين = لا.
إنها (المستخدم) مسؤولية تثبيت محسّلات الصور وإضافتها إلى المسار. إذا اتبعت تعليمات التثبيت الخاصة بـ Windows و Linux أعلاه ، فسيتم تثبيت محسّنات الصور الافتراضية (SAM2P و JBIG2 و PNGOUT) لك. بالنسبة إلى Linux ، هناك أيضًا تعليمات للتثبيت أعلاه لمحسّلات الصور الإضافية (Zopflipng و Optipng و AdvPng و ECT).
حدد-do-unify-fonts = no و--do-res-all-all-fonts = no.
إذا كان لا يزال يفشل ، فحدد-do-optimize-fonts = no.
في كلتا الحالتين ، يرجى الإبلاغ عن ذلك على https://github.com/pts/pdfsizeopt/issues
حدد-Do-Optimize-Disages = لا.
يرجى الإبلاغ عن ذلك على https://github.com/pts/pdfsizeopt/issues
حدد-use-pngout = لا. هذا يعطل pngout ، والتي هي أبطأ خطوة التحسين للصور.
يرجى الإبلاغ عن ذلك على https://github.com/pts/pdfsizeopt/issues ، مع إرفاق ملف PDF الإدخال وإخراج وحدة التحكم في PDFSizeOPT. تقريرك موضع تقدير كبير.
في حالة خروج PDFSizeOpt باستثناء غير معطل ، فقد يترك بعض الملفات المؤقتة (PSOTMP.*) وراء الدليل الحالي. يمكنك إزالة هذه الملفات.
يرجى ملاحظة أن PDFSizeOpt ليس مرنًا في معالجة ملفات PDF الفاسدة (أي تلك غير المتوافقة مع معيار PDF). لذلك إذا فشل PDFSizeOpt ، فقد يكون السبب خطأ في PDFSizeOpt أو ملف إدخال PDF تالف. ومع ذلك ، يرجى الإبلاغ عن مشكلة (انظر أعلاه).
يرجى الإبلاغ عن ذلك على https://github.com/pts/pdfsizeopt/issues ، إرفاق ملف PDF الإدخال وملف PDF الإخراج (.pso.pdf) وإخراج وحدة التحكم في PDFSizeOPT. تقريرك موضع تقدير كبير.
قد يحدث هذا إذا كان اسم الملف أو اسم المسار الكامل يحتوي على أي حرف آخر غير أحرف ASCII (AZ و AZ) ، والأرقام (0-9) ، وسفة (_) ، ASCII DASH (-) ، زائد (+) ، نقطة (. ) ، backslash () أو slash (/). عادة لا تعمل هذه الشخصيات:
المساحات وعلامات التبويب: من السهل إصلاحها ، فقط لف اسم الملف في اقتباسات مزدوجة (") ، الطريقة المعتادة.
عروض أسعار مزدوجة ("): لا يمكن أن يحدث هذا ، لا يُسمح بأسماء الملفات على النوافذ باحتواء عروض أسعار مزدوجة. إذا كنت بحاجة إلى تمرير وسيطة غير filename مع اقتباس مزدوج فيه إلى pdfsizeopt ، فقم بذلك. لف الوسيطة في مزدوجة يقتبس (") ، واستبدل جميع علامات الاقتباس المزدوجة (") بـ "، و (بالتوازي مع الاستبدال السابق) استبدال تسلسل التراجع الخلفي () واقتباس مزدوج (" مباشرة تتبعها بتكرار التراجع الخلفي واستبدال الاقتباس المزدوج ( ") مع".
Newlines وغيرها من المساحة البيضاء غير المساحة: لن ينجح هذا ، فإن موجه أوامر Windows (cmd.exe) لا يسمح لهذه الأحرف في وسيطات خط الأوامر. كما أن Windows لا يسمح لهم في أسماء الملفات.
الشخصيات المعلنة (مثل á و ő). لن تعمل هذه الأحرف (أو قد تعمل مع بعض الأحرف فقط ، اعتمادًا على صفحة التعليمات البرمجية النشطة) في اسم ملف PDF المحدد في سطر الأوامر ، أو في المسار الكامل لـ PDFSizeOpt (لذلك لا تقم بتثبيت PDFSizeOPT على C: Bőr ، لن ينجح).
لن تعمل الأحرف المعلنة (خارج صفحة الكود النشط) في اسم المسار الكامل لـ PDFSizeOpt (مثل C: Bőr pdfsizeopt.exe). ذلك لأن Python غير قادر على استدعاء البرامج الخارجية (OS.System و OS.Popen و OS.Spawnl و Subprocess.call) مع شخصيات معلمة باسمها ، لأنه يستخدم واجهة برمجة تطبيقات بايت الواحدة.
أي شيء غير قابل للطباعة ASCII (رمز بين 33 و 126 ، شامل): إذا لم يتم تغطيته أعلاه ، فقد لا يعمل هذا. انظر وصف الشخصيات المعلنة.
إذا كانت بعض أسماء الملفات لا تعمل ، فإن الحلول هي:
يمكن جعل الشخصيات المعروضة في اسم ملف PDF تعمل بالطريقة التالية (كعمل تحسين مستقبلي إلى PDFSizeOpt):
يجب أن يتصل pDFSizeOpt.exe بأبواع واجهة برمجة تطبيقات 16 بت (getCommandlinew) بدلاً من واجهة برمجة تطبيقات بايت (getCommandlinea) للحصول على الحجج
يجب أن يفلت PDFSizeOpt.exe من الشخصيات غير ASCII في الوسيطات (على سبيل المثال AS U+12AB)
يجب تشغيل pdfsizeopt.exe pdfsizeopt.single مثل هذا:
.../pdfsizeopt_win32exec/pdfsizeopt_python.exe .../pdfsizeopt.single-args-u+ ...
يجب أن يتعرف رمز PDFSizeOpt Python-ARGS-U+، وعند العثور على اسم الملف ، يجب أن يحوله إلى Unicode (عن طريق الحفاظ على ASCII باستثناء U+12AB) ، ويجب أن يمرر القيمة المغطاة بـ Unicode (...) . مثل هذا المفتوح (...) يعمل في Python 2.6 على Windows.
عند عرض أسماء الملفات ، يجب أن لا يزال رمز PDFSizeOpt Python يعرض ASCII مع هروب U+12AB. وبالتالي فإن وحدة Win32Console ليست ضرورية. وبالتالي سيتم عرض أسماء الملفات بشكل غير صحيح ولكن بشكل غير صحيح (وليس نسخًا) في نافذة موجه الأوامر.
لا يلزم الهروب في خطوط القيادة لبرامج المساعد (على سبيل المثال GS ، SAM2P) ، لأن كل ذلك هو ASCII ، لأن أسماء الملفات هي أسماء FIL المؤقتة تلقائيًا ، والتي هي كلها ASCII ، ومسار إلى PDFSizeOpt نفسه مطلوب إلى ASCII.
يمكن عمل الشخصيات المعلنة في مسار اسم pdfsizeopt.single على هذا النحو (كعمل تحسين مستقبلي إلى pdfsizeopt):
هل الشخصيات المعلنة في اسم الملف أعلاه أولاً.
يجب أن يستخدم pdfsizeopt.exe wgetCWD للحصول على الدليل الحالي.
يجب أن يستخدم pdfsizeopt.exe wchdir للتغيير إلى دليل pdfsizeopt.single.
يجب على PDFSizeOpt.exe إعداد الدليل PDFSizeOPT_WIN32EXEC و PDFSIZEOPT_WIN32EXEC/PDFSIZEOPT_GSWIN إلى المسار ، باستخدام WPUTENV.
يجب تشغيل pdfsizeopt.exe pdfsizeopt.single مثل هذا:
pdfsizeopt_python.exe pdfsizeopt.single --args-u+ --cwd=... ...
، حيث تكون قيمة -cwd = هي الإصدار (U+12AB) الذي تم هروبه من نتيجة WGETCWD.
يجب أن يقوم رمز PDFSizeOpt Python بإعداد قيمة -cwd = ... إلى اسم ملف الإدخال إذا كان نسبيًا.
يجب ألا يعدل رمز PDFSizeOpt Python المسار إذا كان -cwd = ... موجودًا. (هل يعمل هذا الانتشار المتغير في البيئة في Python 2.6.؟ لنجرب!)
لا يزال من الصحيح أنه لا يوجد حاجة إلى هروب في خطوط الأوامر للبرامج الخارجية (على سبيل المثال GS ، SAM2P) ، لأنها كلها ASCII ، لأن أسماء الملفات المؤقتة كلها ASCII ، ومسار إلى PDFSizeOpt نفسه مطلوب إلى ASCII. هناك حاجة إلى الهروب إذا كان اسم المسار للدليل المؤقت (متغير Temp) يهرب.
حدث هذا الخطأ على نظام Windows XP. الحل: قم بتنزيل msvcr90.dll (أو ابحث عنه في مكان ما على نظامك) ، ونسخه إلى pdfsizeOpt_win32exec (بجانب python26.dll). أي إصدار من msvcr90.dll سيعمل:
لقد حدث هذا الخطأ على نظام Windows XP عندما كان ملف microsoft.vc90.crt.manifest مفقودًا من دليل pdfsizeOpt_win32exec. الحل: إعادة تثبيت PDFSieopt ، الدليل PDFSizeOPT_WIN32EXEC في أحدث إصدار يحتوي على هذا الملف.
يرجى تثبيت PDFSizeOpt باتباع تعليمات التثبيت على https://github.com/pts/pdfsizeopt. من خلال القيام بذلك ، ستستخدم PDFSizeOpt Ghostscript 9.05 مجمعة معها ، وسوف تعمل.