BookTranslator
BookTranslator

מספרי העמודים ב-PDF אינם תואמים לספר? בדקו קודם את תוויות העמודים

תקנו את הניווט ב-PDF שאינו תואם לעמודים המודפסים. עיינו בשישה קובצי דוגמה הכוללים פתיח בספרות רומיות, לוח איורים מוכנס וקטע המתחיל בעמוד 37.

BookTranslator

BookTranslator Team

קריאה של 8 דקות

אם קורא ה-PDF מציג עמוד 4 בעוד שעל עמוד הספר עצמו כתוב 1, בדקו תחילה את תוויות העמודיםשל הקובץ. כריכה ומבוא הממוספר בספרות רומיות עשויים להסיט את המיקום הפיזי מבלי שהספר יהיה חלקי. תקנו את תוויות הניווט בעותק של הקובץ; אל תתחילו בהטבעת מספרים חדשים על גבי העמודים או במחיקת המבוא.

לתיקון זה יש גבול: תוויות אינן יכולות לשחזר סריקה חסרה, לתקן את סדר העמודים או לגלות מה היה מספר בלתי קריא. קודם כל בררו איזה עמוד אכן מופיע בקובץ, ורק לאחר מכן התאימו את הניווט כך שיתאר אותו במדויק.

יצרנו שלושה צמדים של קובצי 'לפני/אחרי' להורדה כדי להמחיש את ההבדל: מחברת בת שבעה עמודים, גרסה עם איור לא ממוספר שהוכנס באמצע, וקטע המתחיל בעמוד מודפס 37. בכל צמד, התוויות השתנו בעוד שהעמודים המוצגים נותרו זהים לחלוטין ברמת הפיקסל.

הפרידו בין שלושת המספרים לפני שאתם מתקנים משהו

במדריך זה, מיקום בקובץ פירושו העמוד הראשון, השני או השלישי ברצף ה-PDF. מספר מודפס פירושו המספר הנראה לעין על גבי העמוד. תווית עמוד פירושה המזהה הלוגי שנשמר לצורכי ניווט, כגון ii או A-1.

ערכים אלה יכולים להיות שונים באופן לגיטימי לחלוטין. ההסבר על תוויות עמודים של PDF Association מתאר רצפי מספור, קידומות ואת ההבדל בין אינדקס עמודים, מספרי עמודים ותוויות. קובץ יכול להכיל פתיח בספרות רומיות, מספור גוף ספר שהתחיל מחדש ונספחים בעלי קידומת מבלי שספירת העמודים שלו תהיה שגויה.

להלן המיפוי בקובץ ההדגמה שלנו בן שבעת העמודים:

מיקום בקובץמספר מודפס גלויתווית ניווט מקוריתתווית מתוקנת
1ללא: כריכה1כריכה
2i2i
3ii3ii
4141
5252
6A-16A-1
7A-27A-2

Cover היא תווית תיאורית שהגדרנו, ולא ספרה המודפסת על גבי הכריכה. הסך הכולל נותר שבעה עמודים. קורא PDF עשוי להציג הן תווית והן מיקום מספרי, כגון 1 (4 of 7); הצגת שניהם אינה סתירה.

הורידו את קובץ שבעת העמודים לפני הוספת התוויות ואת הגרסה עם התוויות. פתחו את עמוד גוף הטקסט הראשון בכל אחד מהם והשוו בין העמוד עצמו לבין פקדי הניווט.

שבעה עמודי לימוד מקוריים, עם הערות מחוץ לתמונות העמודים המציגות מיקומים בקובץ ותוויות לוגיות: Cover,‏ i,‏ ii,‏ 1, 2, A-1 ו-A-2.

זוהי תצוגה מקדימה של העמודים שיצרנו עם תוויות שנוספו מחוץ לתמונות, ולא צילום מסך של יישום PDF מסוים.

מיפוי גבולות המקטעים בעותק עבודה

לפני ביצוע שינויים, שמרו עותק מקורי ללא שינוי ואתרו את נקודות המעבר באמצעות עיון בעמודים: עמוד המבוא הממוספר הראשון, עמוד גוף הטקסט הראשון, נספחים מיוחדים, וכל נספח או נקודה שבה המיספור מתחיל מחדש. רשמו את המיקום בקובץ לצד המזהה הגלוי לעין.

בדקו יותר מאשר רק את עמוד גוף הטקסט הראשון. בדוגמה שלעיל, "הוספת שלוש" מאתרת את עמוד 1 של גוף הטקסט, אך אינה מתארת את המבוא בספרות רומיות או את הנספח A- . היסט יחיד הוא קיצור דרך זמני בתוך מקטע רציף, ולא תיאור אמין של הספר כולו.

אם הרצף קופץ באופן בלתי צפוי — למשל, העמודים הנראים לעין עוברים מ-38 ל-40 — בדקו את התמונות שביניהם, ואם ניתן, השוו לאותה מהדורה במקור. ייתכן שמדובר בסריקה חסרה, בתוספת מכוונת, במיספור מקורי חריג או בבעיית סדר אחרת. אל תקצו את המספר "39" לעמוד לא קשור רק כדי שמונה העמודים ייראה רציף.

עבור קובצי PDF חתומים או מוגנים, השתמשו בתהליך העבודה המורשה של המקור או בקשו מספק המסמך עותק קריאה מתוקן. סקריפטי הדוגמה במאמר זה אינם מיועדים לשמר או לעקוף הגנות אלה.

שינוי תוויות הניווט, לא התוכן המודפס

מסלול שולחני שמתועד על ידי Adobe

ההנחיות הנוכחיות של Adobe לגבי תוויות עמודים ב-Acrobat מפנות אל כל הכלים ← ארגון עמודים ← תוויות עמודים. בחרו טווח, התחילו רצף חדש ולאחר מכן בחרו את סגנון המספור שלו, ערך ההתחלה וקידומת אופציונלית. חזרו על הפעולה עבור מקטעים נפרדים; מקטע רציף יכול להמשיך את הרצף שקדם לו.

עבור הדוגמה שלנו, המשמעות היא מספור רומי למבוא, מספור עשרוני שמתחיל מחדש ב-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.

מיקום בקובץמזהה עמוד גלויתווית
411
5איור ללא מספורPlate-A
622

לפני ההוספה, עמוד 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 תזרימי התוכן של העמודים (content streams) תאמו ברמת הבייט. שום דבר לא הוטבע על תוכן העמוד או הוסר ממנו בבדיקה זו.

ה תוצאות לפי עמוד כוללות גיבובי קבצים (hashes), תוויות והשוואות פיקסלים. ה מפת עמודים להורדה מתעדת מיקומים בקובץ, אינדקסים מבוססי-אפס ומספרים גלויים לעין. הוראות השחזור מפרטות את גרסאות התלויות וכיצד ליצור מחדש את הדוגמאות בתיקיות חדשות.

הדבר מאמת את הקבצים שלנו, אך לא את האופן שבו כל מציג PDF מתמודד איתם. ה-PDF Association מתעדת הבדלים בתמיכה בתוויות בין יישומים שונים; סקר המציגים שפרסמה הוא מ-2024, ולא בדיקה שביצענו שוב היום. בדקו את הקורא שבו תשתמשו בפועל:

  1. פתחו מחדש את העותק השמור וודאו שמספר העמודים הכולל לא השתנה.
  2. בדקו את העמוד הראשון והאחרון בכל מקטע מספור.
  3. נסו לנווט אל ii, 1 ואל A-1, או אל המקבילים להם במסמך שלכם.
  4. ודאו שכל מעבר נוחת בעמוד הגלוי המיועד — ולא סתם במונה שנראה תואם.
  5. אם קורא ה-PDF מתעלם מהתוויות, שמרו את מפת המיקום-לעמוד המפורשת או השתמשו בקורא שתומך בהן. אל תשכתבו שוב ושוב תוויות תקינות רק כדי לפצות על ממשק שאינו תומך בהן.

רינדור תואם אינו מוכיח נגישות, חתימות תקפות, קישורים תקינים או טקסט מחולץ בצורה נכונה. אם העמוד נראה תקין אך הטקסט המועתק שגוי, השתמשו במדריך הנפרד של אבחון שכבת הטקסט ב-PDF. בעיה זו אינה נפתרת באמצעות תוויות עמודים.

שמרו את המיפוי המקורי אם תתרגמו את המסמך בהמשך

אם ניווט מדויק היה הבעיה היחידה, אפשר לעצור כאן. אין צורך ב-OCR או בתרגום רק כדי לשנות תוויות עמודים.

אם השפה היא עדיין המכשול, שמרו את הקובץ המקורי ואת מיפוי העמודים לפני שתמשיכו אל תהליך העבודה לתרגום קובצי PDF סרוקים או אל המדריך עבור תרגום ועיצוב קובצי PDF. לבדיקות מקיפות יותר של הפלט, השתמשו ב- רשימת תיוג לבקרת איכות בתרגום PDF.

קוראים שבוחרים ב- מתרגם ה-PDF של BookTranslator לא צריכים להניח שתוויות העמודים של קובץ המקור יישמרו בפלט שנבנה מחדש. מצב OCR עשוי לשנות את פריסת העמוד, הגופנים וגדלי הגופנים המקוריים. אם הטקסט בפלט זורם מחדש, ודאו קטעים חשובים מול המקור; העתקת מיפוי המספור הישן אל מעברי עמוד חדשים אינה שומרת על ההתאמה.

המטרה אינה להפוך כל מספר לזהה. המטרה היא להפוך כל מספר לחד-משמעי: היכן העמוד ממוקם בקובץ זה, כיצד המקור מכנה אותו, וכיצד הקורא שלכם מגיע אליו.

פוסטים קשורים