PDF הוא פורמט פופולרי שנמצא בשימוש נרחב לשיתוף מסמכים בין ארגונים ויחידים. יתכנו תרחישים שבהם עליך למצוא ולהחליף טקסט מסוים במסמכי ה-PDF לפני השיתוף. אתה יכול לעשות זאת באופן ידני, אבל זה ייקח יותר זמן ויהיה פחות יעיל. האפשרות הטובה והמהירה יותר תהיה לעשות זאת באופן תוכנתי. במאמר זה תלמד כיצד למצוא ולהחליף טקסט בקובצי PDF באמצעות C++.
- C++ API לאיתור והחלפה של טקסט בקובצי PDF
- מצא והחלף טקסט ב-PDF באמצעות C++
- C++ מצא והחלף טקסט בדף PDF ספציפי
- החלף טקסט באזור עמוד PDF באמצעות C++
- מצא והחלף טקסט בקובצי PDF באמצעות ביטויים רגילים
- קבל רישיון חינם
C++ API לאיתור והחלפה של טקסט בקובצי PDF
Aspose.PDF for C++ היא ספריית C++ לעבודה עם קבצי PDF. זה מספק חבורה של תכונות שעוזרות לך להפוך היבטים שונים של זרימות העבודה שלך ב-PDF. תכונה אחת כזו היא איתור והחלפת טקסט בקובצי PDF. אתה יכול להתקין את ה-API דרך NuGet או להוריד אותו ישירות מהקטע הורדות.
PM> Install-Package Aspose.PDF.Cpp
מצא והחלף טקסט ב-PDF באמצעות C++
Aspose.PDF for C++ מספק את המחלקה TextFragmentAbsorber לחיפוש טקסט במסמכי PDF. אתה מאתחל את המחלקה הזו עם הטקסט שאתה רוצה למצוא ומשתמש בו כדי לאחזר את כל קטעי הטקסט התואמים. ברגע שכל הפרגמנטים זמינים, אתה מעליהם בלולאה ומחליף את הטקסט. להלן השלבים לאיתור והחלפת טקסט בקובצי PDF באמצעות C++.
- טען את קובץ ה-PDF באמצעות המחלקה מסמך.
- צור מופע של המחלקה TextFragmentAbsorber ואתחול אותו עם הטקסט שברצונך למצוא בקובץ ה-PDF.
- קבל את TextFragmentAbsorber עבור הדפים באמצעות [Document->getPages()->Accept (System::SharedPtrText::TextFragmentAbsorber מבקר) שיטת 10.
- אחזר את כל מופעי הטקסט באמצעות השיטה TextFragmentAbsorber->getTextFragments().
- עברו בלולאה ב-TextFragmentCollection ועדכנו את הטקסט בשיטת TextFragment->setText (System::String value).
- שמור את קובץ ה-PDF המעודכן בשיטת מסמך->שמור (System::String outputFileName).
להלן הקוד לדוגמה למציאת והחלפת טקסט בקובץ ה-PDF כולו באמצעות C++.
// טען קובץ PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// צור אובייקט TextAbsorber כדי למצוא את כל המופעים של ביטוי חיפוש הקלט
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// קבלו את הסופג לכל הדפים
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);
// קבל את קטעי הטקסט שחולצו
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// לולאה דרך השברים
for (auto textFragment : textFragmentCollection)
{
// עדכן טקסט ומאפיינים אחרים
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// שמור את מסמך ה-PDF שנוצר.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
C++ מצא והחלף טקסט בדף PDF ספציפי
ייתכנו מצבים שבהם אתה רוצה למצוא ולהחליף רק טקסט בעמוד מסוים ולא במסמך כולו. לשם כך, קבל את האובייקט TextFragmentAbsorber עבור הדף שבו ברצונך להחליף את הטקסט. להלן השלבים לאיתור והחלפת טקסט בעמוד מסוים במסמך PDF.
- טען את קובץ ה-PDF באמצעות המחלקה מסמך.
- צור מופע של המחלקה TextFragmentAbsorber ואתחול אותו עם הטקסט שברצונך למצוא בקובץ ה-PDF.
- קבל את TextFragmentAbsorber עבור הדף המסוים באמצעות [Document->getPages()->idxget (int32t index)->Accept (System::SharedPtrText::TextFragmentAbsorber מבקר) 19 שיטה.
- אחזר את כל מופעי הטקסט באמצעות השיטה TextFragmentAbsorber->getTextFragments().
- עברו בלולאה ב-TextFragmentCollection ועדכנו את הטקסט בשיטת TextFragment->setText (System::String value).
- שמור את קובץ ה-PDF המעודכן בשיטת מסמך->שמור (System::String outputFileName).
להלן הקוד לדוגמה למציאת והחלפת טקסט בדף PDF ספציפי באמצעות C++.
// טען קובץ PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// צור אובייקט TextAbsorber כדי למצוא את כל המופעים של ביטוי חיפוש הקלט
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// קבל את הסופג עבור העמוד השני של המסמך
pdfDocument->get_Pages()->idx_get(2)->Accept(textFragmentAbsorber);
// קבל את קטעי הטקסט שחולצו
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// לולאה דרך השברים
for (auto textFragment : textFragmentCollection)
{
// עדכן טקסט ומאפיינים אחרים
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// שמור מסמך PDF שהתקבל.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument2.pdf");
החלף טקסט באזור עמוד PDF באמצעות C++
במקום לחפש בכל העמוד, תוכל לציין את אזור הדף שבו ברצונך להחליף את הטקסט. לשם כך, ה-API מספק את המחלקה Rectangle. להלן השלבים לאיתור והחלפת טקסט בחלק מסוים של דף ה-PDF.
- טען את קובץ ה-PDF באמצעות המחלקה מסמך.
- צור מופע של המחלקה TextFragmentAbsorber ואתחול אותו עם הטקסט שברצונך למצוא ולהחליף בקובץ ה-PDF.
- הגדר את אזור הדף לחיפוש באמצעות שיטת TextFragmentAbsorber->getTextSearchOptions()->setRectangle (System::SharedPtr< Aspose::Pdf::Rectangle> value).
- קבל את TextFragmentAbsorber עבור הדף המסוים באמצעות [Document->getPages()->idxget (int32t index)->Accept (System::SharedPtrText::TextFragmentAbsorber מבקר) שיטת 29.
- אחזר את כל מופעי הטקסט באמצעות השיטה TextFragmentAbsorber->getTextFragments().
- עברו בלולאה ב-TextFragmentCollection ועדכנו את הטקסט בשיטת TextFragment->setText (System::String value).
- שמור את קובץ ה-PDF המעודכן בשיטת מסמך->שמור (System::String outputFileName).
להלן הקוד לדוגמה למציאת והחלפת טקסט באזור דף PDF ספציפי.
// טען קובץ PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// צור אובייקט TextAbsorber כדי למצוא את כל המופעים של ביטוי חיפוש הקלט
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// חיפוש טקסט בגבולות העמוד
textFragmentAbsorber->get_TextSearchOptions()->set_LimitToPageBounds(true);
// ציין את אזור הדף עבור TextSearchOptions
textFragmentAbsorber->get_TextSearchOptions()->set_Rectangle(MakeObject<Rectangle>(100, 100, 800, 700));
// קבל את הסופג לעמוד הראשון של המסמך
pdfDocument->get_Pages()->idx_get(1)->Accept(textFragmentAbsorber);
// קבל את קטעי הטקסט שחולצו
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// לולאה דרך השברים
for (auto textFragment : textFragmentCollection)
{
// עדכן טקסט ומאפיינים אחרים
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// שמור מסמך PDF שהתקבל.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
מצא והחלף טקסט בקובצי PDF באמצעות ביטויים רגילים
Aspose.PDF עבור C++ מספק גם את היכולת לחפש טקסט באמצעות ביטויים רגולריים. עם ביטויים רגולריים, אתה יכול למצוא טקסט כמו כתובות דוא"ל או מספרי טלפון וכו’. לשם כך, עליך לציין את הביטוי הרגולרי במקום את מחרוזת החיפוש ולהשתמש במחלקה TextSearchOptions כדי לציין שאתה משתמש בביטוי רגולרי ביטוי לחיפוש. להלן השלבים לאיתור והחלפת טקסט בקובצי PDF באמצעות ביטוי רגולרי.
- טען את קובץ ה-PDF באמצעות המחלקה מסמך.
- צור מופע של המחלקה TextFragmentAbsorber ואתחל אותו עם הביטוי הרגולרי שבו ברצונך להשתמש.
- אתחול המחלקה TextSearchOptions והעבר נאמנה לבנאי שלה. זה יציין שאתה מחפש באמצעות ביטוי רגולרי.
- הקצה את האובייקט TextSearchOptions למחלקה TextFragmentAbsorber באמצעות [TextFragmentAbsorber->setTextSearchOptions (System::SharedPtrAspose::Pdf::Text::TextSearchOptions ערך)]שיטה 40.
- קבל את TextFragmentAbsorber עבור הדפים באמצעות [Document->getPages()->Accept (System::SharedPtrText::TextFragmentAbsorber מבקר) שיטת 42.
- אחזר את כל מופעי הטקסט באמצעות השיטה TextFragmentAbsorber->getTextFragments().
- עברו בלולאה ב-TextFragmentCollection ועדכנו את הטקסט בשיטת TextFragment->setText (System::String value).
- שמור את קובץ ה-PDF המעודכן בשיטת מסמך->שמור (System::String outputFileName).
להלן הקוד לדוגמה למציאת והחלפת טקסט בקובצי PDF באמצעות ביטוי רגולרי.
// טען קובץ PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 2.pdf");
// צור אובייקט TextAbsorber כדי למצוא את כל המופעים של ביטוי חיפוש הקלט
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"\\d{4} - \\d{4}"); // Like 1999-2000
// הגדר אפשרות חיפוש טקסט כדי לאפשר שימוש בביטוי רגולרי
auto textSearchOptions = MakeObject<TextSearchOptions>(true);
textFragmentAbsorber->set_TextSearchOptions(textSearchOptions);
// קבל את הסופג עבור כל עמודי המסמך
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);
// קבל את קטעי הטקסט שחולצו
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// לולאה דרך השברים
for (auto textFragment : textFragmentCollection)
{
// עדכן טקסט ומאפיינים אחרים
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// שמור מסמך PDF שהתקבל.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
קבל רישיון חינם
אתה יכול לנסות את ה-API ללא מגבלות הערכה על ידי בקשת [רישיון זמני בחינם].47
סיכום
במאמר זה, למדת כיצד למצוא ולהחליף טקסט בקובצי PDF באמצעות C++. ראית כיצד להחליף טקסט בכל מסמך ה-PDF, דף PDF ספציפי או אזור מסוים בעמוד. יתר על כן, למדת כיצד לחפש ולהחליף טקסט באמצעות ביטוי רגולרי. Aspose.PDF for C++ הוא ממשק API רב עוצמה עם תכונות נוספות רבות שהופכות את העבודה עם מסמכי PDF לחתיכת עוגה. אתה יכול לחקור את ה-API בפירוט על ידי שימוש בתיעוד הרשמי. אם יש לך שאלות כלשהן, אל תהסס לפנות אלינו בפורום.