itext tutorial convert data pdf report using java itext
W tym samouczku iText omówiono, jak manipulować danymi zbiorczymi w bezpiecznym, pojedynczym raporcie PDF przy użyciu języka Java i biblioteki iText:
iText to narzędzie do generowania skonsolidowanego raportu, w którym możemy manipulować danymi zbiorczymi w pojedynczą formę podmiotu, który zawiera istotne informacje.
iText to biblioteka Java PDF używana do tworzenia i manipulowania dokumentami PDF poprzez tworzenie programów Java. Niektóre funkcje biblioteki iText obejmują generowanie interaktywnych dokumentów PDF, dodawanie zakładek, zapisywanie plików PDF jako plików obrazów, dzielenie i scalanie istniejących plików PDF w wiele plików PDF itp.
Czego się nauczysz:
Dlaczego iText?
Działa w wszechstronnym środowisku raportu automatycznego, który jest generowany przez określone serwery, takie jak Apache Tomcat, JBoss, Junit. Udostępnia dokument zdefiniowany przez użytkownika zgodnie z potrzebami użytkownika.
Czy iText jest zorientowany na bezpieczeństwo?
Oferuje sposoby odzyskiwania dokumentów w oparciu o operacje związane z bezpieczeństwem, takie jak ochrona hasłem lub weryfikacja danych wejściowych użytkownika, takich jak otwieranie odcinka wypłaty przez wprowadzenie danych PAN.
Obecnie generalnie wolimy zapisywać dane w formie elektronicznej niż papierowej. Lepiej jest przechowywać raporty na serwerach niż papiery. Gdy potrzebujesz raportu, po prostu uruchom plik Java i wygeneruj go od razu.
W tym artykule spróbujmy znaleźć odpowiedź na następujące pytania:
darmowe alternatywy dla avast cleanup premium
- Czy możemy korzystać z wielofunkcyjności?
- Czy służy tylko do sporządzania raportów?
- Gdzie możemy używać Itext?
- Czy może utworzyć nowy raport?
- Jestem testerem, czy jest to dla mnie pomocne?
Co to jest iText?
Wynikiem narzędzia iText jest raport PDF zintegrowany z Javą. Spowoduje to dziedziczenie zachowań i składników PDF oraz wygenerowanie zgodnego raportu.
iText to API typu open source ze środowiskiem kooperacyjnym, udziałem w pełnoprawnym, penetracji światła przez Prism i podstawą generowania raportów.
Na przykład: Rozważmy przykład biletu Indian Railways. Tutaj chcemy wydrukować szczegółowe podsumowanie procesu biletowego od wyszukania wolnych miejsc do rezerwacji biletu.
Następnie zrozumiemy, jak iText może nam pomóc w spełnieniu tego wymagania.
Niektóre cechy są następujące:
- Pełne podsumowanie wniosku (CSA)
- Szczegóły łatwego śledzenia (ETD)
- Łatwe przetwarzanie wniosku (EPA)
Jak rozpocząć raport iText?
Łatwo jest podejść do Itext poprzez Javę. Jest to zilustrowane na przykładzie.
Analityk biznesowy (BA) otrzymuje od klienta dokument dotyczący procesu biznesowego (BPD) i dokument specyfikacji funkcjonalnej (FSD), który wyjaśnia jego oczekiwania względem aplikacji.
Weźmy scenariusz. BA przyniosło wiele wymagań dotyczących kadrowania raportów, a także tego, jak nasz podstawowy produkt może to wspierać. Takie specyfikacje od renomowanych klientów sprawiają, że myślimy o tym, aby i tak nie stracić projektu z powodu wielu nieporozumień i dylematów, jak uzyskać raport w zgodny sposób.
Dlaczego takie zamieszanie pojawia się w generowanych raportach?
Dzieje się tak, ponieważ dane obecne w aplikacji pokazują jedynie odbicie danych w Raporcie. Nie przesuwa się, aby sprawdzić każdy węzeł w aplikacji (np. Tak jak w przypadku skanowania MRI). Tak więc jest to najłatwiejszy sposób.
Tak, dokładnie. Ale nasz klient oczekuje, że dane będą dynamiczne. Na podstawie dostępnych danych raport powinien zostać wygenerowany w sposób dynamiczny.
Omówmy to na przykładzie czasu rzeczywistego.
Scenariusz 1: Dane statyczne mogą być zakodowane na stałe i generować raporty. W tym przypadku kwota pożyczki i wartość nieruchomości nie zmieniają się przed wypłatą.
Proszę znaleźć obrazek poniżej dla powyższego scenariusza:
Scenariusz 2 : W tym scenariuszu wartość nieruchomości rośnie z dnia na dzień, a kapitał pożyczki powinien być corocznie zmniejszany, a zatem prognozowane dane są dynamiczne.
Klient może przyjść i zwrócić się do nas, aby przedstawić szczegóły dotyczące różnych lat finansowych, ponieważ zmienił kadencję i na jej podstawie zmieniono EMI. Jeśli zakodowałeś dane na stałe, jak pokazano na poniższym rysunku, zostaniesz złapany na gorącym uczynku.
Rozważ przypadek, w którym raport ma być dynamiczny. Nie możemy tego przedstawić tak, jak jest. Musimy przeprowadzić kontrolę techniczną i jasno przejść przez wymagania przed rozpoczęciem projektowania i testowania.
Musimy bardzo wyraźnie skupić się na części projektowej, w której zatwierdzenie jest dokonywane przez analityka biznesowego. To dobre podejście, ponieważ nie można nam wskazać żadnych problemów związanych z UAT, które pojawią się później. Przewiduje się, że rozwiązaniem tego problemu dynamicznego generowania raportów będzie po prostu wykorzystanie koncepcji Java do generowania raportu.
Jak wywołać raport?
Poniższy diagram ilustruje proces generowania raportu:
Jak wywołać raport przez JSP?
Wszędzie tam, gdzie nazywamy Javę, konieczne jest zaprojektowanie interfejsu użytkownika, ponieważ będzie to działać jako mapa przewodnia, aby przejść od interfejsu użytkownika. Jest to łatwy sposób, ponieważ możemy nauczyć się wywołania raportu.
Rozważmy przykład:
Software Report
Raport możemy skonfigurować w ten sposób:
- Nazwa raportu: Raport oprogramowania (wyświetlany w aplikacji)
- Zgłaszanie połączeń przez JS: Przykładowy raport
- Upuść menu: Możliwość integracji wielu raportów
- Na kliknięcie: Funkcja JavaScript
Jak testerzy mogą zainicjować raport?
Testerzy zazwyczaj preferują testy regresyjne za pomocą skryptów automatyzacji wykorzystujących strukturę Cucumber, strukturę opartą na słowach kluczowych i strukturę opartą na danych.
Aby dostarczyć raport w oparciu o wymagania klienta, możemy przejść do gotowej architektury, tj. IText, gdzie wbudowane narzędzie dziedziczy właściwości i zachowanie pliku raportującego, a także artefakty do dostarczenia.
Testerzy mogą tworzyć skonsolidowane raporty, takie jak lista pozostałych błędów (RBL), procent wyników testów, mapowanie identyfikatorów błędów na podstawie odpowiednich faz, takich jak SIT, UAT i testy produkcyjne, używając iText Java.
Rozważ scenariusz, który wymaga skonfigurowania wielu raportów.
Poniższy kod ilustruje, jak używać w JSP, na co patrzymy na początku. Stosowana jest następująca metoda:
Software Report Software Report1 Software Report2
Jak wywołać w JavaScript (JS)?
Generalnie możemy dokonywać walidacji w JS, ale możesz to zrobić nawet w Javie. Wykonywacz JavaScript został dołączony do naszego pakietu do wywoływania funkcji i wywoływania programu w celu wygenerowania raportu, który jest bardzo kompatybilny.
Można go użyć do wywołania (wywołania) metody z obiektem właściciela jako argumentem.
Function onload(){ String ReportName=””; if(ReportName==' Sample Report'){ var applnNum=''; //It is passing Application Number from the session which is active var UrlToPass = SchedulerServlet?action=samplereport &SubAction=StandardRepose &ReportName='+ ReportName +'& applnNum ='+ applnNum } }
Powyższa metoda obsługuje onload () funkcja, którą można wywołać w aplikacji, aby była bardzo wszechstronna i wyzwala adres URL w celu wygenerowania raportu.
Jak zbudować funkcję w raporcie Java?
Java obsługuje alerty i wyjątki w programie, a także wykonuje generowanie raportów.
Zilustrujmy to na przykładzie.
Document Doc =new Document ();
To sposób tworzenia dokumentu i jednocześnie platforma integrująca raport.
Doc.open();
Powyższe polecenie służy do otwierania dokumentu. Ważne jest, aby dołączyć tę komendę, ponieważ jeśli jej nie ma, zgłosi wyjątek dokumentu.
Doc.close();
Powyższe polecenie służy do zamknięcia dokumentu, który wskazuje JVM, że dokument zaakceptował zaprzestanie pisania. Ważne jest, aby dołączyć tę komendę, ponieważ jeśli jej nie ma, zgłosi wyjątek dokumentu.
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT));
Powyższe polecenie pokazuje dokument, który integruje właściwości pliku PDF przez PDFWriter, wywołuje dokument i sprawia, że jest widoczny.
Paragraph para = new Paragraph ();
Akapit zapisuje wystąpienie zawartości autodopasowania, a także zapisuje zbiorcze wiersze wymagania.
Doc.setpercentage(%to be given);
W powyższym poleceniu został wywołany dokument w wywołaniu pliku PDF, aby był zgodny z określoną zawartością procentową.
public static final String output FileName = 'sample output/Automation/sample report.pdf';
Powyższe polecenie wyświetla nazwę dokumentu zawartą w podwójnych cudzysłowach oraz określoną lokalizację do przechowywania pliku po kliknięciu raportu.
writer. setPdfVersion(PdfWriter.VERSION_1_9);
Tutaj pokazuje sposób ustawienia wersji PDF w generowaniu raportu.
document. setPageSize (PageSize.A4);
Możemy również ustawić rozmiar strony, na jakiej ma być dostarczony raport w oparciu o wymagania. Rozmiar strony jako A3, A4, A5 itp.
document. setMargins(24, 43, 34, 43);
Możemy użyć powyższej funkcji, aby ustawić marginesy, i możemy użyć metody autofit, aby normalnie dopasować ją do dokumentu.
document.setMarginMirroring(true);
Powyższe polecenie wyświetla metodę ustawienia lustra marginesu.
Obsługa alertów i wyjątków
Ważne jest, aby obsługiwać alerty i wyjątki w Javie.
Poniżej wymieniono niektóre z alertów, na które natrafiamy w czasie wykonywania:
- Wyjątek NoSuchElement
- Wyjątek zerowego wskaźnika
- Indeks tablicy powiązany z wyjątkiem
- Błąd asercji
- Nieobsłużony wyjątek alertu
- Wyjątek SQL
- Wyjątek limitu czasu
- Wyjątek dokumentu
Czasami programista może również wydrukować wyjątek bloku try-catch. Wyjątek znajduje się pod blokiem catch.
Przykład:
try{ Scanner in= new Scanner(System.in); Int n; System.out.println(“Enter the number to check:” +n); n=in.nextInt(); If(n%2==0){ System.out.println(“Even Number ”); }else{ System.out.println(“ODD Number”); } }catch(Exception e){ e.printstacktrace(); System.out.println(“Exception occurred:” +e); }
Przykładowe wyniki: Scenariusz pozytywny
Wpisz numer do sprawdzenia: 2
Liczba parzysta
Przykładowy wynik: scenariusz negatywny
Wprowadź numer do sprawdzenia: a
Wystąpił wyjątek: Wyjątek dotyczący niedozwolonego formatu
Wyjaśnienie:
Należy podać liczbę jako dane wejściowe, ponieważ w powyższym przykładzie kodu zdefiniowaliśmy „n” jako liczbę całkowitą. Jeśli wprowadzimy jakiekolwiek alfabety, w których próbuje uzyskać resztę (użyty moduł%), to nie pobierze żadnych danych i po prostu wyrzuci wyjątek za pomocą bloku catch.
Dokładna różnica między błędem a wyjątkiem w Javie:
darmowy konwerter youtube na mp3 premium
Błąd uniemożliwi wykonanie programu, ale wyjątek zostanie przechwycony podczas uruchamiania programu, który nie zatrzyma wykonania.
Rejestrowanie dziennika plików:
Zapisanie dziennika dla każdej metody lub modułu pozwala nam określić, gdzie JVM przestaje działać. Dziennik zwykle przedstawia wartość, w której jest przechowywany w określonym pliku dziennika, oraz sposób, w jaki procesor wykonuje program Java w aplikacji.
Różnica między System.out.println (SOP) a Log:
Obydwa drukuje wartość lub przedstawia zawartość wprowadzoną w cudzysłowach. Ale różnice między tymi dwoma to: Podczas działania programu aplikacja wyświetla wartości na konsoli za pomocą polecenia SOP. Ale kiedy skasujemy zawartość konsoli, trudno jest znaleźć wartość. Dzieje się tak również, gdy mamy wiele SOP.
Zasadniczo polecenie Fabryka dziennika może pobrać i zaktualizować wartości. Plik dziennika możemy przeglądać za wszelką cenę, ponieważ przy każdym uruchomieniu zapisuje on datę i godzinę systemową.
Przykład:
private static Log logFile= LogFactory.getLog(SampleProgram.class);
Serwery
Serwery odgrywają ważną rolę w firmie, ponieważ mogą określić, czy wykonanie programu zakończyło się pomyślnie, czy nie.
Serwery lokalne to serwery, na których możemy wykonać program na naszej lokalnej maszynie. Możemy skorzystać z następujących lokalnych serwerów:
- Apache Tomcat
- JBoss
Po wprowadzeniu kodu Stan gotowości, powinien zostać wdrożony na określonym serwerze i wymaga ponownego uruchomienia. Mogliśmy skorzystać z następujących serwerów:
- Oracle Weblogic
- IBM Websphere
Przykładowy program:
Rozważ program, w którym mógłby przetwarzać implementację iText.
/****Importings Header Functions package pkg_Name import java.util.HashMap; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ommons.logging.Log; import com.commons.logging.LogFactory; /** * Implementing Report for generating Report */ public class ReportsController extends HttpServlet { private static Log Log = LogFactory.getLog(ReportsController.class); /** * Default constructor Used in the method. */ public ReportsController() { TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ public void doPost(HttpServletRequest pRequest, HttpServletResponse pResponse) throws ServletException, IOException { String action = null; try { Action = pRequest.getParameter('action'); if(Log.isDebugEnabled()) log.debug('action '+action); if(action != null) { Action = Action.trim(); if(Action.equals('createReport')) { createReport(pRequest,pResponse); }}} catch(Exception Ex) { Log.fatal('Exception in ReportsController: '+pEx.toString()); } } // Get the Report name from UI private void createReport(HttpServletRequest pRequest, HttpServletResponse pResponse) throws Exception { if(log.isDebugEnabled()) log.debug('createReport '); String nameofReport = null; try { nameofReport = pRequest.getParameter('ReportName'); if(log.isDebugEnabled()) log.debug('nameofReport '+nameofReport); if(nameofReport != null) { nameofReport = nameofReport.trim(); if(nameofReport.equals('FirstRepo')) { getFirstRepo (pRequest,pResponse); } if(nameofReport.equals('SecondRepo')) { getSecondRepo (pRequest,pResponse); }}} catch(Exception pEx) { log.print('Exception in createReport - while getting Connection: '+pEx.toString()); } } // Add for FirstRepo private void getFirstRepo(HttpServletRequest pRequest, HttpServletResponse pResponse) throws Exception { if(log.isDebugEnabled()) log.debug('getFirstRepo '); String Url = null; String Referno = null; String lproductDesc = null; String lFileName = null; RequestDispatcher requestDispatcherObj = null; try { Referno = pRequest.getParameter('ApplNum'); productDesc=pRequest.getParameter('ProdDesc'); if(log.isDebugEnabled()) log.debug('lReferno '+lReferno); if(log.isDebugEnabled()) log.debug('lproductDesc '+lproductDesc); RequestDispatcherObj.forward(pRequest, pResponse); } catch(Exception pEx) { log.fatal('Exception in createReport - while getting Connection: '+pEx.toString()); } }
Wyrównanie w Itext Java
Ogólnie rzecz biorąc, użytkownicy potrzebują dokumentów raportu w określonym formacie, ponieważ raporty muszą jasno przedstawiać, co i jak chcesz pokazać wyniki. IText pomaga w tym.
Przykładowy program
Package com. Softwaretesting.itext; Import java io.fileoutputstream; Import com itext pdf.Text.Document; //Through this I am including a paragraph in my PDF; Import com itextpdf.Text.Paragraph; //use the below code to write in the PDF Import com. Itext pdf.pdfwriter; Public class Alignmentpdf{ //class starts from here and Start writing in below specified file Private static string file=” Alignmentpdf.pdf”; System out.println(“Document entered is…”+ file); //JVM Starts executing from main method i.e. below code Public static void main (string () args){ //JVM starts compiling from here try { Document doc =new document (); Pdfwriter.getInstance(doc, new file output stream (file)); // Below function which makes to open the document in the front end doc.open(); Paragraph para=new paragraph(“first para”); //Paragraph usually maintains more than one sentence //If Sentence needs to be aligned at Left, use below code Para.setAlignment(Element.ALIGN_LEFT); doc.add(para); // If Sentence needs to be aligned at Right, use below code Paragraph para1=new paragraph(“alignment should be done in second”); Para1 set alignment (Element.ALIGN-RIGHT); doc.add (para1); /*you can create same paragraph object like para or para1 based on user convenience throughout the program. But I am using different object because of showing the difference for Reader Understanding*/ Paragraph para2 = new paragraph (“Alignment is in Centre”); // If Sentence needs to be aligned at the center, use below code Para2 set alignment (Element.Align_CENTER); doc.add(para2); doc.close(); } Catch (DocumentException e){ e. printstacktrace(); System.out.println(“Printed Java Program”); }}}
Czy iText jest używany do tworzenia nowego lub aktualizowania istniejącego?
Może pojawić się pytanie, czy iText służy wyłącznie do tworzenia nowego pliku PDF? Odpowiedź brzmi: nie, oprócz generowania nowych raportów PDF, iText zapewnia również pewne funkcje, takie jak aktualizowanie istniejącego pliku PDF i zapewnia skonsolidowane wyniki, które zawierają zaktualizowaną zmianę.
Przykładowy kod:
// Reading Input file from where the need to copy Private static string file-to-be-given=”D:/software/Existingpdf.pdf;” // Reading Input file from where the need to paste Private static string file-to-be-output=”D:/software/outputpdf pdf” doc.open(); pdfReader reader =new pdfReader (file-to-be-given); //Getting Number of pages before enters into for Loop Int n= reader.getNopages(); PdfImportedpage pager; //Reading all pages in pdf For (int i=1;i<=n; i++){ If(i==5) { //I need to add only 5th Page in my new PDF Pager=writer.getImportedpage(reader,i); Paragraph para= new paragraph (“Its adding”); doc. add (para); } doc. close(); }
Fragment w formacie iText Pdf:
Chunk to nowa technika, która mieści się w dostępnym miejscu w formacie PDF i nie wymagałaby niczego towarzyszącego.
Przykładowy program:
doc.open(): doc.add(new chunk (“1st order”)); doc.add(new chunk(“2nd order”)); doc.add(new chunk(“3rd order”)); doc.close();
Kto może korzystać z iText?
Profil | Rozwój | Wyświetl dostęp |
---|---|---|
Rozwój | Możliwy | Przyjazny użytkownikowi |
Próbnik | Częściowo możliwe | Przyjazny użytkownikowi |
Analityk Biznesowy | Niemożliwe | Przyjazny użytkownikowi |
Klient | Niemożliwe | Przyjazny użytkownikowi |
Wniosek
iTextpdf zazwyczaj opracowuje wkład raportu przy użyciu języka Java do wyników aplikacji
„IText to Java, ale generuje plik PDF, który będzie pasował jako przyjazny dla użytkownika i może generować krystalicznie przejrzyste raporty”
Zalety iText:
- Interfejs przetwarzania aplikacji wysokiego i niskiego poziomu (API)
- Zgodność w świadczeniu usług typu End to End (PEE)
- Ponowne sprawdzenie dostępności przepływu tekstu dla użytkowników telefonów komórkowych (TFRAM)
- Zdolność adaptacji.
- Dostępność międzyplatformowa.
Wady iText:
- Nie jest w stanie osiągnąć określonych projektów.
- Wymagana jest gruntowna znajomość koncepcji OOP.
rekomendowane lektury
- Samouczek dotyczący refleksji w języku Java z przykładami
- Samouczek Java SWING: kontener, komponenty i obsługa zdarzeń
- Samouczek JAVA dla początkujących: ponad 100 praktycznych samouczków wideo Java
- Modyfikatory dostępu w Javie - samouczek z przykładami
- Ciąg w języku Java z buforem ciągów i samouczek dotyczący tworzenia ciągów
- Data Mart Tutorial - Rodzaje, przykłady i implementacja Data Mart
- Java String zawiera () Samouczek dotyczący metody z przykładami
- Samouczek dotyczący ciągów Java | Metody ciągów Java z przykładami