iTextsharp - wstawianie do PDF-a metodą "znajdź i zamień" tekstu edytowlnego w Adobe Readerze

0

Witam.

Piszę program, który ma mi ułatwić życie w pracy. Chodzi o wypełnianie wniosków (nie ważne jakich) na podstawie tabeli excela. Pogrzebałem trochę w internecie i trafiłem na biblioteke iTextSharp. Do wstawiania tekstu użyłem funkcji, takiej jak poniżej:

ColumnText.ShowTextAligned(stamper.GetOverContent(pageNumber), Element.ALIGN_LEFT, new Phrase("X", blackFont), 53, 660, 0);

Generalnie działa, jednak są z nią związane 2 niedogodności:

  1. po pierwsze wstawiany tekst jest nieedytowalny z poziomu Adobe Readera, więc jak gotowy dokument przejmie ktoś inny, kto nie ma mojego programu, nie będzie mógł go edytować/aktualizować.
  2. po drugie - chcialbym móc tworzyć podobne podprogramy do innych typów dokumentów. Metoda podana powyżej wpisuje tekst w miejsce podane współrzędnymi. Ich ustalanie dla różnych dokumentów jest dość czasochłonne. Chciałbym użyć czegoś na kształt "znajdź i zamień". Czyli mam szablon jakiegoś dokumentu w nim tagi, takie jak #imie, #nazwisko, itp. Program powinien pobrać z Excela odpowiednie dane (co już robi), zrobić kopię szablonu (co już robi) a następnie w kopii zamienić np. tekst #imie na Jan, #nazwisko, Na Kowalski. Czy znacie jakąś dedykowaną Find And Replace zamieniającą wpisany tekst w pdf? Tagi w szablonie ustawiam w Adobe Readerze przy pomocy funkcji "Wypełnij i podpisz". Wstawia ona tekst edytowalny z poziomu Adobe Readera. Chciałbym, aby zamieniony tekst również był edytowalny.

Jakieś pomysły?

0

Hmm nie wiem czy dobrze cie zrozumiałem ale ja robiłem w ten sposób, że: tworzyłem szablon w pdf z tzw polami. (Fields). Każde pole miało swoją nazwę unikalną. I za pomocą ItextSharpa odwoływałem się do tego pola po jego nazwie i tam wstawiałem tekst. Szablon robiłem np w wordzie, tabela. A przez stronę online wstawiałem w komórki te pola z nazwą. To są tzw formularze pdf. I generalnie nie potrzebowałem współrzędnych i tekst można było edytować

0

Tymi szablonami mają być wzory wniosków udostępniane przez firmy zewnętrzne. Wnioski mają już określoną strukturę. Taki wniosek od firmy zewnętrznej chcę przerobić na szablon wpisując w odpowiednie pola tagi #imię, #nazwisko, #powiat, etc. Następnie mój program otwierałby excela i dla każdego wiersza w excelu tworzył osobny wniosek poprzez skopiowanie szablonu do odpowiedniego katalogu i podmianę tagów na dane z komórek danego wiersza.

W jaki sposób tworzysz te pola (Fields)? Nie chciałbym by jakieś dodatkowe ramki były widoczne na takich wnioskach, tylko tekst o określonej wielkości i czcionce w odpowiednich miejscach.

0

https://www.pdfescape.com, tu sobie robiłem. Pola są widoczne. Ale jak się wydrukuje to już nie. Bynajmniej na podglądzie wydruku nie ma. Tylko tekst. To się nazywa Form Fields.

1 użytkowników online, w tym zalogowanych: 0, gości: 1