Номерата на страниците в PDF не съвпадат с книгата? Първо проверете етикетите на страниците
Поправете навигацията в PDF, която се различава от отпечатаните страници. Разгледайте шест примерни файла, покриващи увод с римски цифри, вмъкната илюстрация и откъс, започващ от страница 37.

Ако четецът на PDF показва страница 4, докато самата страница от книгата показва 1, първо проверете етикетите на страницитевъв файла. Корицата и въведението с римска номерация могат да изместят физическата позиция, без това да прави книгата непълна. Коригирайте етикетите за навигация върху копие; не започвайте с поставяне на нови номера върху страниците или изтриване на въведението.
Тази поправка има своите граници: етикетите не могат да възстановят липсващо сканиране, да поправят реда на страниците или да ви покажат какъв е бил нечетлив номер. Първо установете коя страница действително присъства. След това направете така, че навигацията да я описва точно.
Създадохме три двойки файлове „преди/след“ за изтегляне, за да демонстрираме разликата: бележник от седем страници, версия с вмъкната неномерирана илюстрация и откъс, започващ от отпечатана страница 37. Във всяка двойка етикетите бяха променени, докато визуализираните страници останаха напълно идентични до последния пиксел.
Разграничете трите номера, преди да поправяте каквото и да било
За целите на това ръководство позиция във файла означава първата, втората, третата страница в PDF документа. Отпечатан номер означава номерът, видим на страницата. Етикет на страницата означава логическият идентификатор, съхранен за навигация, като например ii или A-1.
Тези стойности могат напълно основателно да се различават. Публикуваното от PDF Association обяснение за етикетите на страници описва поредиците от номерация, префиксите и разликата между индекси на страници, номера и етикети. Един файл може да съдържа уводни страници с римски цифри, рестартирана номерация на основния текст и приложения с префикси, без това да означава, че общият брой страници е грешен.
Ето съответствието в нашия примерен файл от седем страници:
| Позиция във файла | Видим отпечатан номер | Оригинален навигационен етикет | Коригиран етикет |
|---|---|---|---|
| 1 | Няма: корица | 1 | Корица |
| 2 | i | 2 | i |
| 3 | ii | 3 | ii |
| 4 | 1 | 4 | 1 |
| 5 | 2 | 5 | 2 |
| 6 | A-1 | 6 | A-1 |
| 7 | A-2 | 7 | A-2 |
Cover е описателен етикет, който сме задали, а не отпечатан номер върху корицата. Общият брой остава седем страници. Даден четец може да показва както етикет, така и позиция, например 1 (4 of 7); показването и на двете не е противоречие.
Изтеглете файла от седем страници преди етикетирането и етикетираната версия. Отворете първата страница от основния текст във всеки от тях и сравнете самата страница с контролите за навигация.

Това е визуализация на нашите авторски страници с етикети, добавени извън изображенията, а не екранна снимка на конкретно PDF приложение.
Определете границите на разделите върху работно копие
Преди редактиране запазете непроменено копие на оригинала и идентифицирайте преходите, като прегледате страниците: първата номерирана страница от въведението, първата страница от основния текст, всички вложки, както и всяко приложение или рестартиране на номерацията. Запишете позицията във файла до видимия идентификатор.
Проверете не само първата страница от основния текст. В горния пример добавянето на три открива страница 1 от основния текст, но не описва увода с римски цифри или приложението A- . Единичното отместване е временно пряко решение в рамките на непрекъснат раздел, а не надеждно описание на цялата книга.
Ако поредицата прескочи неочаквано — да речем, видимите страници скачат от 38 на 40 — прегледайте междинните изображения и, ако е възможно, сравнете със същото издание от първоизточника. Това може да е липсващо сканиране, умишлена вложка, необичайна оригинална номерация или друг проблем с подредбата. Не задавайте „39“ на несвързана страница само за да направите брояча да изглежда непрекъснат.
За подписани или защитени PDF файлове използвайте разрешения работен процес от източника или поискайте от издателя на документа коригирано копие за четене. Примерните скриптове в тази статия не са предназначени за запазване или заобикаляне на тези защити.
Променяйте навигационните етикети, а не отпечатаното съдържание
Настолен метод, документиран от Adobe
Актуалните инструкции за етикети на страници в Acrobat на Adobe препращат към All tools → Organize pages → Page labels. Изберете диапазон, стартирайте нова поредица и след това изберете нейния стил на номериране, начална стойност и незадължителен префикс. Повторете за отделните раздели; даден непрекъснат раздел може да продължи предходната поредица.
За нашия пример това означава римски цифри за увода, десетично номериране, започващо отново от 1 за основния текст, и десетично номериране с A- за приложението. Потвърдете реално избраните страници, преди да приложите всяка промяна, особено когато съществуващите етикети вече се различават от позициите във файла.
Adobe разграничава тези навигационни етикети от видимите номера в горния или долния колонтитул. Ако просто искате контролите за страници на четеца да съвпадат с книгата, добавянето на видим долен колонтитул е съвсем различна операция.
Тези стъпки се основават на документацията. Не сме извършвали възстановяване с Acrobat, нито сме тествали конкретен интерфейс на Acrobat за тази статия.
Методът, който реално тествахме с pypdf
Нашите тестови файлове бяха създадени с ReportLab, клонирани с pypdf 6.10.0 и снабдени с етикети, без да се променят потоците със съдържанието на страниците им. Само за мострата от седем странициосновната операция е:
from pypdf import PdfReader, PdfWriter
from pypdf.constants import PageLabelStyle
reader = PdfReader("seven-page-before.pdf")
writer = PdfWriter(clone_from=reader)
writer.set_page_label(0, 0, prefix="Cover")
writer.set_page_label(1, 2, style=PageLabelStyle.LOWERCASE_ROMAN, start=1)
writer.set_page_label(3, 4, style=PageLabelStyle.DECIMAL, start=1)
writer.set_page_label(5, 6, style=PageLabelStyle.DECIMAL, prefix="A-", start=1)
with open("seven-page-labeled-copy.pdf", "xb") as output:
writer.write(output)
assert PdfReader("seven-page-labeled-copy.pdf").page_labels == [
"Cover", "i", "ii", "1", "2", "A-1", "A-2"
]
API използва индекси, започващи от нула: позиция 4 във файла е индекс 3. Посочените по-горе диапазони включват и двете крайни точки. Изключващият режим на запис, xb, отказва да презапише съществуващ файл. Вижте съответната версия на API за етикети на страници в pypdf и нашия пълен генератор за точната имплементация.
Не поставяйте тези диапазони в друга книга. Първо установете нейната структура от раздели. Нашият тестван скрипт не приема клиентски или изходен PDF: той генерира единствено оригиналните примери, дефинирани в него.
Два случая, при които фиксираното отместване е неприложимо
Неномерирана илюстрация променя отместването на основния текст
Във втория примерен файл вмъкнахме илюстративна вложка между отпечатаните страници 1 и 2 от основния текст. Вложката няма отпечатан номер. Зададохме ѝ описателния етикет Plate-A и продължихме следващата страница от основния текст с 2.
| Позиция във файла | Видим идентификатор на страницата | Етикет |
|---|---|---|
| 4 | 1 | 1 |
| 5 | Неномерирана илюстрация | Plate-A |
| 6 | 2 | 2 |
Преди вмъкването отпечатаната страница 1 беше на позиция 4 във файла: отместване от три. След вмъкването отпечатаната страница 2 е на позиция 6 във файла: отместване от четири. Повторното използване на първото отместване би ви отвело до илюстрацията.
Сравнете версията от осем страници преди етикетирането с етикетираната версия. Корекцията добавя нов раздел с етикети при вмъкването и възобновява номерацията на основния текст след него. Това не превръща вложката в номерирана изходна страница, нито я премахва от файла.
Откъсът може да започва от отпечатана страница 37
Третият ни примерен файл съдържа три страници с видима номерация 37, 38 и 39. Техните позиции във файла са 1, 2 и 3. Подходящите етикети започват от 37, а не от 1.
Файлът преди корекцията и файлът след корекцията съдържат точно тези три страници. Означаването на първата страница с етикет 37 не предполага, че PDF файлът съдържа предходните 36 страници.
За реален откъс използвайте номера, които можете да проверите в източника. Ако първият видим номер липсва или е изрязан, намерете потвърждаващи доказателства от източника, преди да го зададете. Една удобна, но налучкана поредица може да бъде по-подвеждаща дори от обикновено номериране по позиция във файла.
Проверете запазения файл, а не само диалоговия прозорец за редактиране
За тези три двойки отворихме отново и шестте PDF файла и проверихме всеки етикет на страница. Poppler 26.08.0 рендерира и двете версии при 144 dpi. Всички 18 съответстващи двойки страници имаха напълно идентични пиксели, а потоците със съдържание на всички 18 страници съвпадаха байт по байт. В този тест върху съдържанието на страниците не беше добавяно или премахвано нищо.
Резултатите поотделно за всяка страница включват хешове на файловете, етикети и пикселни сравнения. Достъпната за изтегляне карта на страниците отразява файловите позиции, индексите с начална нула и видимите номера. Инструкциите за възпроизвеждане описват версиите на зависимостите и начина за повторно генериране на примерите в нови директории.
Това потвърждава изправността на нашите файлове, но не и начина, по който всеки четец ги обработва. PDF Association документира разлики в поддръжката на етикети между различните приложения; публикуваното проучване на програми за преглед е от 2024 г., а не тест, който сме повторили днес. Проверете четеца, който действително ще използвате:
- Отворете отново запазеното копие и се уверете, че общият брой страници не е променен.
- Прегледайте първата и последната страница на всеки раздел с номерация.
- Опитайте да навигирате до
ii,1иA-1, или до съответните им стойности във вашия документ. - Уверете се, че всеки преход ви отвежда до желаната видима страница, а не просто до брояч с подобна стойност.
- Ако четецът игнорира етикетите, запазете изричната карта от позиции към страници или използвайте програма, която ги поддържа. Не пренаписвайте неколкократно коректните етикети само за да компенсирате неподдържан интерфейс.
Съвпадащото визуално изобразяване не гарантира достъпност, валидни подписи, работещи връзки или правилно извлечен текст. Ако страницата изглежда добре, но копираният текст е грешен, използвайте отделната диагностика на текстовия слой на PDF. Този проблем не се решава чрез етикети на страниците.
Запазете оригиналната карта, ако по-късно превеждате документа
Ако точната навигация е била единственият проблем, спрете дотук. Не са необходими OCR или превод за преименуване на етикетите на страниците.
Ако езикът все още е пречка, запазете оригиналния файл и схемата на страниците, преди да следвате работния процес за превод на сканиран PDF или ръководството за превод и форматиране на PDF. За по-подробни проверки на крайния резултат използвайте контролния списък за проверка на качеството при превод на PDF.
Читателите, които избират PDF преводача на BookTranslator , не бива да приемат за даденост, че етикетите на страниците от оригинала ще се запазят в преструктурирания краен файл. Режимът OCR може да промени първоначалното оформление, шрифтовете и техните размери. Ако текстът в изходния файл се преподреди, сверете важните пасажи с оригинала; простото копиране на старата номерация върху новото разделяне на страници не запазва съответствието.
Целта не е да направите всяко число абсолютно еднакво. Целта е всяко число да бъде недвусмислено: къде се намира страницата в този файл, как я нарича оригиналът и как читателят ви може да я намери.
Свързани публикации





