itext tutorial convert data pdf report using java itext
Αυτό το σεμινάριο iText συζητά πώς να χειρίζεστε μαζικά δεδομένα σε μια ασφαλή, ενιαία μορφή αναφοράς PDF χρησιμοποιώντας Java και iText Library:
Το iText είναι το εργαλείο για τη δημιουργία μιας συγκεντρωτικής αναφοράς όπου μπορούμε να χειριστούμε μαζικά δεδομένα στη μοναδική μορφή οντότητας που περιέχει σημαντικές πληροφορίες.
Το iText είναι μια βιβλιοθήκη Java Java που χρησιμοποιείται για τη δημιουργία και χειρισμό εγγράφων PDF με την ανάπτυξη προγραμμάτων Java. Ορισμένες από τις δυνατότητες της βιβλιοθήκης iText περιλαμβάνουν τη δημιουργία διαδραστικών εγγράφων PDF, την προσθήκη σελιδοδεικτών, την αποθήκευση PDF ως αρχείων εικόνας, το διαχωρισμό και τη συγχώνευση υφιστάμενων PDF σε πολλά PDF κ.λπ.
Τι θα μάθετε:
- Γιατί το iText;
- Τι είναι το iText;
- Πώς να ξεκινήσετε την έκθεση iText;
- Πώς να καλέσετε αναφορά μέσω JSP;
- Πώς μπορούν οι δοκιμαστές να ξεκινήσουν την αναφορά;
- Πώς να καλέσετε το JavaScript (JS);
- Πώς να δημιουργήσετε τη λειτουργία στην αναφορά Java;
- Χειρισμός ειδοποιήσεων και εξαιρέσεων
- Διακομιστές
- Ευθυγράμμιση σε Java Itext
- Ποιος μπορεί να χρησιμοποιήσει το iText;
- συμπέρασμα
Γιατί το iText;
Λειτουργεί σε ένα ευέλικτο περιβάλλον μιας Αυτόματης Αναφοράς που παράγεται από συγκεκριμένους διακομιστές όπως Apache Tomcat, JBoss, Junit. Παρέχει ένα καθορισμένο από το χρήστη έγγραφο σύμφωνα με τις ανάγκες του χρήστη.
Είναι το iText Security προσανατολισμένο;
Προσφέρει τρόπους με τους οποίους τα έγγραφα θα μπορούσαν να ανακτηθούν με βάση λειτουργίες που σχετίζονται με την ασφάλεια, όπως προστασία με κωδικό πρόσβασης ή επικύρωση εισόδων από τον χρήστη, όπως το άνοιγμα του δελτίου καταχώρησης εισάγοντας λεπτομέρειες PAN.
Σήμερα, γενικά προτιμούμε να αποθηκεύουμε δεδομένα σε αντίγραφα αντί σε έντυπα αντίγραφα. Είναι καλύτερα να αποθηκεύετε αναφορές σε διακομιστές από χαρτιά. Κάθε φορά που χρειάζεστε την αναφορά, εκτελέστε το αρχείο Java και δημιουργήστε το εκεί και εκεί.
Σε αυτό το άρθρο, ας προσπαθήσουμε να βρούμε τη λύση στις ακόλουθες ερωτήσεις:
πώς να παίξετε αντικείμενα flash shockwave
- Μπορούμε να χρησιμοποιήσουμε πολλές λειτουργίες;
- Αν χρησιμοποιείται μόνο για την προετοιμασία αναφορών;
- Πού μπορούμε να χρησιμοποιήσουμε το Itext;
- Εάν μπορεί να δημιουργήσει τη νέα αναφορά;
- Είμαι δοκιμαστής, είναι χρήσιμο για μένα;
Τι είναι το iText;
Η έξοδος του εργαλείου iText είναι μια αναφορά PDF που ενσωματώνεται από την Java. Αυτό κληρονομεί τις συμπεριφορές PDF, τα στοιχεία και δημιουργεί μια συμβατή αναφορά.
Το iText είναι ένα API ανοιχτού κώδικα με περιβάλλον συνεργασίας, συμμετοχή σε πλήρη ανάπτυξη, διείσδυση του πρίσματος στο φως και το θεμέλιο της δημιουργίας αναφορών.
Για παράδειγμα: Εξετάστε ένα παράδειγμα εισιτηρίου Ινδικών Σιδηροδρόμων. Εδώ, θέλουμε την εκτύπωση της λεπτομερούς περίληψης της διαδικασίας εισιτηρίων ξεκινώντας από την αναζήτηση διαθεσιμότητας θέσεων έως την κράτηση του εισιτηρίου.
Στη συνέχεια, θα καταλάβουμε πώς το iText μπορεί να μας βοηθήσει με αυτήν την απαίτηση.
Μερικά από τα χαρακτηριστικά είναι τα εξής:
- Πλήρης περίληψη της αίτησης (CSA)
- Εύκολες λεπτομέρειες παρακολούθησης (ETD)
- Εύκολη επεξεργασία της εφαρμογής (EPA)
Πώς να ξεκινήσετε την έκθεση iText;
Είναι εύκολο να προσεγγίσετε το Itext μέσω Java. Απεικονίζεται με τη βοήθεια ενός παραδείγματος.
Το Business Analyst (BA) λαμβάνει το Business Process Document (BPD) και το Functional Specification Document (FSD) από τον πελάτη που εξηγεί τις προσδοκίες του από την εφαρμογή.
Ας πάρουμε ένα σενάριο. Η BA έφερε πολλές απαιτήσεις σχετικά με τη διαμόρφωση αναφορών, καθώς και τον τρόπο με τον οποίο το βασικό μας προϊόν μπορεί να το υποστηρίξει. Τέτοιες προδιαγραφές από φημισμένους πελάτες μας κάνουν να σκεφτόμαστε να μην χάσουμε το έργο ούτως ή άλλως λόγω της πολλαπλής σύγχυσης και του διλήμματος σχετικά με τον τρόπο επίτευξης της αναφοράς με συμβατό τρόπο.
Γιατί προκύπτει τέτοια σύγχυση στις αναφορές που δημιουργούνται;
Αυτό συμβαίνει επειδή τα δεδομένα που υπάρχουν στην εφαρμογή δείχνουν απλώς την αντανάκλαση των δεδομένων στην Αναφορά. Δεν μετακινείται για να ελέγξει κάθε κόμβο στην εφαρμογή (π.χ. όπως γίνεται στη σάρωση μαγνητικής τομογραφίας). Έτσι, είναι ο ευκολότερος τρόπος.
Ναι ακριβώς. Αλλά ο πελάτης μας αναμένει τα δεδομένα να είναι δυναμικά. Με βάση τα διαθέσιμα δεδομένα, η αναφορά θα πρέπει να δημιουργηθεί με δυναμικό τρόπο.
Ας το συζητήσουμε με ένα παράδειγμα σε πραγματικό χρόνο.
Σενάριο 1: Τα στατικά δεδομένα θα μπορούσαν να είναι κωδικοποιημένα και να δημιουργούν αναφορές. Εδώ, το ποσό του δανείου και η αξία του ακινήτου δεν αλλάζουν πριν από την εκταμίευση.
Βρείτε την παρακάτω εικόνα για το παραπάνω σενάριο:
Σενάριο 2 : Σε αυτό το σενάριο, η αξία του ακινήτου αυξάνεται μέρα με τη μέρα και το κεφάλαιο του ποσού δανείου θα πρέπει να μειώνεται κάθε χρόνο και έτσι τα προβλεπόμενα δεδομένα είναι δυναμικά.
Ένας πελάτης μπορεί να έρθει και να μας πλησιάσει για να παράσχει τις λεπτομέρειες για διάφορα οικονομικά έτη, επειδή έχει αλλάξει τη θητεία και με βάση αυτό το EMI είχε ποικίλει. Αν έχετε κωδικοποιήσει τα δεδομένα όπως φαίνεται στην παρακάτω εικόνα, θα σας πιάσουν με κόκκινο χέρι.
Εξετάστε την περίπτωση όπου η έκθεση υποτίθεται ότι είναι δυναμική. Δεν μπορούμε να το προωθήσουμε ως έχει. Πρέπει να κάνουμε τον τεχνικό έλεγχο και να ακολουθήσουμε τις απαιτήσεις με σαφήνεια πριν ξεκινήσουμε την ανάπτυξη και τον έλεγχο.
Πρέπει να επικεντρωθούμε πολύ καθαρά στο σχεδιασμό του τμήματος όπου η έγκριση γίνεται από το Business Analyst. Είναι μια καλή προσέγγιση, διότι τυχόν ζητήματα UAT που θίγονται αργότερα δεν μπορούν να μας επισημανθούν. Η λύση για αυτό το πρόβλημα δημιουργίας δυναμικής αναφοράς προβλέπεται απλώς να χρησιμοποιεί έννοιες Java για τη δημιουργία μιας αναφοράς.
Πώς να καλέσετε μια αναφορά;
Το παρακάτω διάγραμμα απεικονίζει τη διαδικασία δημιουργίας μιας αναφοράς:
Πώς να καλέσετε αναφορά μέσω JSP;
Οπουδήποτε ονομάζουμε Java, είναι απαραίτητο να κάνουμε σχεδιασμό UI, καθώς αυτό θα λειτουργεί ως οδηγός για να προχωρήσουμε από τη διεπαφή. Είναι ένας εύκολος τρόπος, καθώς μπορούμε να μάθουμε την Αναφορά κλήσης.
Ας εξετάσουμε ένα παράδειγμα:
Software Report
Μπορούμε να διαμορφώσουμε την αναφορά με αυτόν τον τρόπο:
- Όνομα αναφοράς: Αναφορά λογισμικού (εμφάνιση στην εφαρμογή)
- Αναφορά κλήσεων μέσω JS: Δείγμα αναφοράς
- Μενού απόθεσης: Πολλές αναφορές μπορούν να ενσωματωθούν
- Στο κλικ: Λειτουργία JavaScript
Πώς μπορούν οι δοκιμαστές να ξεκινήσουν την αναφορά;
Οι δοκιμαστές προτιμούν συνήθως τη δοκιμή παλινδρόμησης μέσω σεναρίων αυτοματισμού χρησιμοποιώντας το πλαίσιο Cucumber, το πλαίσιο βάσει λέξεων-κλειδιών και το πλαίσιο βάσει δεδομένων.
Για να παρέχουμε την αναφορά βάσει των απαιτήσεων του πελάτη, μπορούμε να προχωρήσουμε με την αρχιτεκτονική της ετοιμότητας, δηλαδή το iText όπου το ενσωματωμένο εργαλείο κληρονομεί τις ιδιότητες και τη συμπεριφορά του αρχείου αναφοράς καθώς και τα αντικείμενα που θα παραδοθούν.
Οι δοκιμαστές μπορούν να πραγματοποιήσουν την ενοποιημένη Αναφορά, όπως Λείψη σφαλμάτων που παραμένει (RBL), ποσοστό παραδοτέων δοκιμής, χαρτογράφηση αναγνωριστικών σφαλμάτων με βάση τις αντίστοιχες φάσεις, όπως SIT, UAT και δοκιμές παραγωγής χρησιμοποιώντας το iText Java.
Εξετάστε ένα σενάριο που πρέπει να διαμορφώσει πολλές αναφορές.
Ο παρακάτω κώδικας επεξηγεί τον τρόπο χρήσης στο JSP που είναι αυτό που βλέπουμε στο μπροστινό μέρος. Χρησιμοποιείται η ακόλουθη μέθοδος:
Software Report Software Report1 Software Report2
Πώς να καλέσετε το JavaScript (JS);
Γενικά, μπορούμε να κάνουμε επικυρώσεις στο JS, αλλά μπορείτε να το κάνετε ακόμη και σε Java. Ο εκτελεστής JavaScript έχει συμπεριληφθεί στο πακέτο μας για τη λειτουργία κλήσεων και για να καλέσουμε το πρόγραμμα να δημιουργήσει μια αναφορά που είναι πολύ συμβατή.
Μπορεί να χρησιμοποιηθεί για να επικαλεστεί (κλήση) μέθοδο με ένα αντικείμενο ιδιοκτήτη ως επιχείρημα.
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 } }
Η παραπάνω μέθοδος χειρίζεται το φόρτωση () συνάρτηση που μπορεί να επικαλεσθεί στην εφαρμογή να είναι πολύ ευέλικτη που ενεργοποιεί τη διεύθυνση URL για τη δημιουργία αναφοράς.
Πώς να δημιουργήσετε τη λειτουργία στην αναφορά Java;
Η Java χειρίζεται τις ειδοποιήσεις και τις εξαιρέσεις στο πρόγραμμα και εκτελεί επίσης τη δημιουργία αναφορών.
Ας το απεικονίσουμε με τη βοήθεια ενός παραδείγματος.
Document Doc =new Document ();
Είναι ο τρόπος δημιουργίας του εγγράφου και είναι επίσης η πλατφόρμα που ενσωματώνει την έκθεση.
Doc.open();
Η παραπάνω εντολή χρησιμοποιείται για το άνοιγμα του εγγράφου. Είναι σημαντικό να συμπεριλάβετε αυτήν την εντολή σαν να μην περιλαμβάνεται, θα ρίξει εξαίρεση εγγράφου.
Doc.close();
Η παραπάνω εντολή χρησιμοποιείται για το κλείσιμο του εγγράφου που υποδεικνύει την JVM ότι το έγγραφο έχει αποδεχτεί να σταματήσει να γράφει. Είναι σημαντικό να συμπεριλάβετε αυτήν την εντολή σαν να μην περιλαμβάνεται, θα ρίξει εξαίρεση εγγράφου.
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT));
Η παραπάνω εντολή εμφανίζει το έγγραφο που ενσωματώνει τις ιδιότητες του PDF μέσω PDFWriter, καλεί το έγγραφο και το καθιστά ορατό.
Paragraph para = new Paragraph ();
Μια παράγραφος γράφει την παρουσία των περιεχομένων της αυτόματης προσαρμογής και επίσης γράφει τις μαζικές γραμμές της απαίτησης.
Doc.setpercentage(%to be given);
Στην παραπάνω εντολή, ένα έγγραφο έχει κληθεί να καλέσει το PDF να είναι συμβατό όπως ορίζεται από το ποσοστό που περιλαμβάνεται.
public static final String output FileName = 'sample output/Automation/sample report.pdf';
Η παραπάνω εντολή εμφανίζει το όνομα του εγγράφου, που περιλαμβάνεται στα διπλά εισαγωγικά, και την καθορισμένη θέση για την αποθήκευση του αρχείου μόλις κάνετε κλικ στην αναφορά.
writer. setPdfVersion(PdfWriter.VERSION_1_9);
Εδώ, δείχνει τον τρόπο ρύθμισης της έκδοσης PDF στη δημιουργία αναφορών.
document. setPageSize (PageSize.A4);
Μπορούμε επίσης να ορίσουμε το μέγεθος της σελίδας για το πώς πρέπει να παραδίδεται η αναφορά με βάση τις απαιτήσεις. Το μέγεθος της σελίδας ως A3, A4, A5 κ.λπ.
document. setMargins(24, 43, 34, 43);
Μπορούμε να χρησιμοποιήσουμε την παραπάνω λειτουργικότητα για να ορίσουμε τα περιθώρια και μπορούμε να χρησιμοποιήσουμε τη μέθοδο αυτόματης προσαρμογής ώστε να ταιριάζει κανονικά στο έγγραφο.
document.setMarginMirroring(true);
Η παραπάνω εντολή εμφανίζει τη μέθοδο της ρύθμισης Margin mirror.
Χειρισμός ειδοποιήσεων και εξαιρέσεων
Είναι σημαντικό να χειριστείτε τις ειδοποιήσεις και τις εξαιρέσεις στην Java.
Μερικές από τις ειδοποιήσεις που συναντάμε κατά τη διάρκεια του χρόνου παρατίθενται παρακάτω:
- Εξαίρεση NoSuchElement
- Εξαίρεση Null Pointer
- Array Index δεσμευμένο για Εξαίρεση
- Σφάλμα επιβεβαίωσης
- Εξαίρεση μη χειρισμένης ειδοποίησης
- Εξαίρεση SQL
- Εξαίρεση χρονικού ορίου
- Εξαίρεση εγγράφου
Μερικές φορές, ο προγραμματιστής μπορεί επίσης να εκτυπώσει την εξαίρεση ενός μπλοκ δοκιμής. Η εξαίρεση περικλείεται κάτω από το μπλοκ αλιευμάτων.
Παράδειγμα:
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); }
Παραγωγή δείγματος: Θετικό σενάριο
Εισαγάγετε τον αριθμό για έλεγχο: 2
Ζυγός αριθμός
Παραγωγή δείγματος: Αρνητικό σενάριο
Εισαγάγετε τον αριθμό για έλεγχο: α
Προέκυψε εξαίρεση: Εξαίρεση παράνομης μορφής
Εξήγηση:
Ένας αριθμός πρέπει να δοθεί ως είσοδος επειδή έχουμε ορίσει «n» ως ακέραιο στο παραπάνω παράδειγμα κώδικα. Εάν εισαγάγουμε αλφάβητα όπου προσπαθεί να πάρει το Υπόλοιπο (% modulus used), τότε δεν θα ανακτήσει δεδομένα και θα ρίξει την εξαίρεση χρησιμοποιώντας catch block.
Η ακριβής διαφορά μεταξύ σφάλματος και εξαίρεσης στην Java:
Ένα σφάλμα θα σας εμποδίσει να εκτελέσετε το πρόγραμμα, αλλά μια εξαίρεση θα εντοπιστεί κατά την εκτέλεση του προγράμματος, ενώ δεν θα σταματήσει την εκτέλεση.
Καταγραφή αρχείου καταγραφής αρχείων:
Το γράψιμο του αρχείου καταγραφής για κάθε μέθοδο ή λειτουργική μονάδα μας κάνει να προσδιορίζουμε πού σταματά να εκτελείται το JVM. Ένα αρχείο καταγραφής συνήθως εμφανίζει την τιμή όπου αποθηκεύεται στο καθορισμένο αρχείο καταγραφής και με ποιον τρόπο ο επεξεργαστής εκτελεί το πρόγραμμα Java στην εφαρμογή.
Διαφορά μεταξύ System.out.println (SOP) και Log:
Και οι δύο εκτυπώνουν την τιμή ή παρουσιάζουν ό, τι το περιεχόμενο εισάγεται σε διπλά εισαγωγικά. Αλλά το οι διαφορές μεταξύ αυτών των δύο είναι: Κατά την εκτέλεση του προγράμματος, η εφαρμογή εκτυπώνει τις τιμές στην κονσόλα με εντολή SOP. Αλλά μόλις διαγράψουμε τα περιεχόμενα της κονσόλας, είναι δύσκολο να βρούμε την τιμή. Αυτό συμβαίνει επίσης όταν έχουμε πολλά SOP.
Βασικά, η εργοστασιακή εντολή Log θα μπορούσε να ανακτήσει και να ενημερώσει τις τιμές. Μπορούμε να δούμε το αρχείο καταγραφής με οποιοδήποτε κόστος επειδή γράφει κάθε φορά σε κάθε εκτέλεση με ημερομηνία και ώρα συστήματος.
Παράδειγμα:
private static Log logFile= LogFactory.getLog(SampleProgram.class);
Διακομιστές
Οι διακομιστές παίζουν σημαντικό ρόλο στην εταιρία καθώς μπορεί να καθορίσει εάν η εκτέλεση του προγράμματος έχει περάσει ή όχι.
Οι τοπικοί διακομιστές είναι οι διακομιστές όπου μπορούμε να εκτελέσουμε το πρόγραμμα στον τοπικό υπολογιστή μας. Μπορούμε να χρησιμοποιήσουμε τους ακόλουθους τοπικούς διακομιστές:
- Apache Tomcat
- JBoss
Μόλις εισαχθεί ο κωδικός Έτοιμη κατάσταση, Θα πρέπει να αναπτυχθεί στον καθορισμένο διακομιστή και απαιτεί επανεκκίνηση. Θα μπορούσαμε να χρησιμοποιήσουμε τους ακόλουθους διακομιστές:
- Oracle Weblogic
- IBM Websphere
Δείγμα προγράμματος:
Εξετάστε το πρόγραμμα όπου θα μπορούσε να επεξεργαστεί την εφαρμογή 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()); } }
Ευθυγράμμιση σε Java Itext
Γενικά, οι χρήστες χρειάζονται τα έγγραφα αναφοράς σε συγκεκριμένη μορφή, επειδή οι αναφορές πρέπει να αντιπροσωπεύουν σαφώς τι και πώς θέλετε να εμφανίσετε τα αποτελέσματα. Το IText σάς βοηθάει με αυτό.
Δείγμα προγράμματος
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”); }}}
Το iText χρησιμοποιείται για τη δημιουργία ενός νέου ή για την ενημέρωση ενός υπάρχοντος;
εφαρμογή δυαδικού δέντρου c ++
Μπορεί να προκύψει ερώτημα εάν το iText χρησιμοποιείται μόνο για τη δημιουργία ενός νέου PDF; Η απάντηση είναι όχι, εκτός από τη δημιουργία νέων αναφορών PDF, το iText παρέχει επίσης ορισμένες δυνατότητες όπως η ενημέρωση υπάρχοντος pdf και η ενοποιημένη έξοδος που περιλαμβάνει την ενημερωμένη αλλαγή.
Δείγμα κώδικα:
// 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(); }
Κομμάτι στο iText Pdf:
Το Chunk είναι η νέα τεχνική που ταιριάζει στον διαθέσιμο χώρο σε pdf και δεν θα απαιτούσε τίποτα να συνοδεύσει.
Δείγμα προγράμματος:
doc.open(): doc.add(new chunk (“1st order”)); doc.add(new chunk(“2nd order”)); doc.add(new chunk(“3rd order”)); doc.close();
Ποιος μπορεί να χρησιμοποιήσει το iText;
Προφίλ | Ανάπτυξη | Προβολή πρόσβασης |
---|---|---|
Ανάπτυξη | Δυνατόν | Φιλικό προς τον χρήστη |
Δοκιμαστής | Εν μέρει πιθανό | Φιλικό προς τον χρήστη |
Επιχειρηματικός αναλυτής | Αδύνατον | Φιλικό προς τον χρήστη |
Πελάτης | Αδύνατον | Φιλικό προς τον χρήστη |
συμπέρασμα
Το iTextpdf επεξεργάζεται συνήθως τη συνεισφορά αναφοράς χρησιμοποιώντας Java για τα αποτελέσματα της εφαρμογής
'Το iText είναι το Java, αλλά παράγει pdf που θα ταιριάζει ως φιλικό προς το χρήστη και μπορεί να δημιουργήσει κρυστάλλινα αναφορές'
Πλεονεκτήματα του iText:
- Διεπαφή επεξεργασίας εφαρμογών υψηλού και χαμηλού επιπέδου (API)
- Συμβατότητα στην παροχή υπηρεσιών End to End (PEE)
- Έλεγχος διαθεσιμότητας ροής κειμένου για χρήστες κινητών (TFRAM)
- Ικανότητα προσαρμογής.
- Διαθεσιμότητα μεταξύ πλατφορμών.
Μειονεκτήματα του iText:
- Δεν είναι σε θέση να επιτύχει συγκεκριμένα σχέδια.
- Απαιτείται πλήρης γνώση των εννοιών του OOP.
Συνιστώμενη ανάγνωση
- Εκμάθηση Java Reflection με παραδείγματα
- Εκμάθηση Java SWING: Container, Components and Event Handling
- Εκπαιδευτικό πρόγραμμα JAVA για αρχάριους: 100+ πρακτικά εκπαιδευτικά βίντεο Java
- Πρόσβαση τροποποιητών σε Java - Εκμάθηση με παραδείγματα
- Java String με String Buffer και String Builder Tutorial
- Tutorial Data Mart - Τύποι, παραδείγματα & υλοποίηση του Data Mart
- Το Java String περιέχει () Μέθοδος Εκμάθησης με Παραδείγματα
- Εκμάθηση συμβολοσειράς Java | Μέθοδοι συμβολοσειράς Java με παραδείγματα