সবেমাত্র একটি পয়েন্টার পাওয়া গেছে যে এটির ghostscript
জন্য এটি ব্যবহার করা সম্ভব , এখানে: পিডিএফটেক - পিডিএফ - ইউনিক্স এবং লিনাক্সে বুকমার্কগুলি যুক্ত এবং সম্পাদনা করুন - স্ট্যাক এক্সচেঞ্জ # 18600 ; এটি লিঙ্কগুলি বোঝায়:
যাইহোক, উপরোক্ত বুকমার্কগুলির সাথে চুক্তি করুন - লজিকাল পৃষ্ঠাগুলির সাথে নয়। এটি pdfmarkReferences.pdf থেকে দেখা যাচ্ছে , প্রয়োজনীয় "কমান্ড" হ'ল ' /Label
' (বা ' /PAGELABEL
') - এবং এটি পিডিএফফারেন্স.পিডিএফ অধ্যায় 8.3.1 "পৃষ্ঠা লেবেলগুলি" বোঝায় । দুর্ভাগ্যক্রমে, অধ্যায়টি পিডিএফমার্কগুলি কীভাবে পৃষ্ঠা লেবেলগুলির সাথে ব্যবহার করা যেতে পারে তা জরুরিভাবে ব্যাখ্যা করে না - তবে এই পোস্টটি করে:
/ পেজেলবেল পিডিএফমার্কের কোনও / পৃষ্ঠার কী নেই, সুতরাং কেউ কেবল 'বর্তমান' পৃষ্ঠার জন্য লেবেল সেট করতে পারে (এবং ফলস্বরূপ, একবারে কেবল একটি পৃষ্ঠার জন্য)। যেহেতু আপনি একে একে প্রথম দিকে কল করেছেন তাই এটি 1 ম পৃষ্ঠার জন্য এবং কেবল এটির জন্য একটি লেবেল স্থাপন করবে বলে আশা করা হচ্ছে।
একই পৃষ্ঠার জন্য একাধিক / PAGELABELs: পিডিএফমার্ক রেফারেন্স বলে যে শেষটি কার্যকর হয়, তাই আপনার 1 ম কমান্ডলাইনের ফলাফলটি ঠিক আছে is নোট করুন / পৃষ্ঠা কী উপেক্ষা করা হয়।
পোস্টস্ক্রিপ্ট থেকে পৃষ্ঠা লেবেল কীভাবে সেট করবেন? আমি 2 টি পদ্ধতি সম্পর্কে চিন্তা করতে পারি:
(ক) 100% নথিভুক্ত উপায়:
প্রতিটি পৃষ্ঠার অংশ হিসাবে একটি / PAGELABEL ইস্যু করুন।
(খ) কম নথিভুক্ত উপায়: ...
gswin32c -sDEVICE=pdfwrite -sOutputFile=50pages.pdf -dNOPAUSE
GS>[/_objdef {pl} /type /dict /OBJ pdfmark
GS>[{pl} <</Nums [0 <</P (Page ) /S /r /St 10>> 2 <<>>]>> /PUT pdfmark
GS>[{Catalog} <</PageLabels {pl}>> /PUT pdfmark
GS>50 { showpage } repeat
GS>quit
... এবং আরও সেই থ্রেডে:
এই কাজটি করার মতো; যেহেতু মূল ফাইলটি পিডিএফ ফাইল, আপনি ফাইল থেকে প্রতিটি পৃষ্ঠা পৃথকভাবে চালাতে পারেন। সুতরাং আপনি পৃষ্ঠা 1 এর জন্য পেজেলবেল পিডিএফমার্ক সেট করতে পারেন, মূল ফাইল থেকে পৃষ্ঠা 1 চালান, পৃষ্ঠা 2 এর জন্য পজেলাবেল সেট করতে পারেন, মূল ফাইল থেকে পৃষ্ঠা 2 চালান এবং এ জাতীয় কিছু।
লেবেলটি (সোগস হিসাবে) বর্তমান পৃষ্ঠায় প্রয়োগ হয়েছে বলে এই আউটপুট পিডিএফ ফাইলের প্রতিটি পৃষ্ঠার জন্য সঠিকভাবে লেবেল সেট করা উচিত। (সতর্কতা: আমি আসলে এটি চেষ্টা করে দেখিনি)
সম্পাদনা করুন: কেবল এটি দেখানোর জন্য - আপনার যদি এটি pdfmarks
ফাইল হিসাবে সংরক্ষণ করা হয় :
[ /Label (-1) /PAGELABEL pdfmark
showpage
[ /Label (0) /PAGELABEL pdfmark
showpage
[ /Label (1) /PAGELABEL pdfmark
showpage
... এবং আপনি কল:
gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=outfile.pdf infile.pdf pdfmarks
... তারপরে আপনি তিনটি খালি পৃষ্ঠা পেজ infile.pdf
-1, 0 এবং 1 এর লেবেলযুক্ত যুক্ত পাবেন
ওয়েল, সম্ভবত এটি gs
পৃষ্ঠাগুলি পুনর্নির্মাণের জন্য একটি সহজ স্ক্রিপ্ট পেতে কোনও সময় সহায়তা করে :)
চিয়ার্স!
সম্পাদনা 2: আমি পেয়েছি, আমি মনে করি - gs
উপরের মতো একই কমান্ড ব্যবহার করুন - এবং নীচে pdfmarks
স্ক্রিপ্টের বিষয়বস্তু রয়েছে , যা infile.pdf পুনর্বিবেচনা করবে, সুতরাং এটি -1, 0, 1 দিয়ে শুরু হয় ... এটি মূলত একটি পরিবর্তিত উদাহরণ থেকে পিডিএফ রেফারেন্স (আরও জন্য মন্তব্য দেখুন):
% Type name (Optional) The type of PDF object that this dictionary describes; if present, must be PageLabel for a page label dictionary.
% S name (Optional) The numbering style to be used for the numeric portion of each page label:
% D Decimal arabic numerals
% R Uppercase roman numerals
% r Lowercase roman numerals
% A Uppercase letters (A to Z for the first 26 pages, AA to ZZ for the next 26, and so on)
% a Lowercase letters (a to z for the first 26 pages, aa to zz for the next 26, and so on)
% P text string (Optional) The label prefix for page labels in this range.
% St integer (Optional) The value of the numeric portion for the first page label in the range. Subsequent pages will be numbered sequentially from this value, which must be greater than or equal to 1. Default value: 1.
% renumber first 25 pages - push each by 10, and add prefix:
% [/_objdef {pl} /type /dict /OBJ pdfmark
% [{pl} <</Nums [0 <</P (Page ) /S /D /St 10>> 25 <<>>]>> /PUT pdfmark
% [{Catalog} <</PageLabels {pl}>> /PUT pdfmark
[/_objdef {pl} /type /dict /OBJ pdfmark
[{pl} <</Nums [ 0 << /P (-1) >> % just label -1 (no style) for pg 0;
1 << /P (0) >> % just label 0 (no style) for pg 1;
2 << /S /D /St 1 >> % decimal style, start from 1, for pg2 and on.
]>> /PUT pdfmark
[{Catalog} <</PageLabels {pl}>> /PUT pdfmark