Προσδιορισμός αλλαγής πίνακα σε αρχείο PDF

Σε αυτό το σεμινάριο, θα μάθουμε πώς να προσδιορίζουμε τις αλλαγές πίνακα σε αρχείο PDF χρησιμοποιώντας το Aspose.PDF για .NET. Θα εξηγήσουμε τον πηγαίο κώδικα σε C# βήμα προς βήμα. Στο τέλος αυτού του σεμιναρίου, θα ξέρετε πώς να προσδιορίσετε εάν ένας πίνακας υπερβαίνει τα περιθώρια της σελίδας. Ας αρχίσουμε!

Βήμα 1: Ρύθμιση περιβάλλοντος

Πρώτα, βεβαιωθείτε ότι έχετε ρυθμίσει το περιβάλλον ανάπτυξης C# με το Aspose.PDF για .NET. Προσθέστε την αναφορά στη βιβλιοθήκη και εισαγάγετε τους απαραίτητους χώρους ονομάτων.

Βήμα 2: Δημιουργία του εγγράφου PDF

Σε αυτό το βήμα, δημιουργούμε ένα νέοDocument αντικείμενο να αναπαραστήσει το έγγραφο PDF.

pdf-Document = new Document();

Αυτό το έγγραφο θα χρησιμοποιηθεί για την προσθήκη ενοτήτων και πινάκων.

Βήμα 3: Προσθήκη ενότητας και πίνακα

Τώρα θα προσθέσουμε μια ενότητα στο έγγραφο PDF μας και θα δημιουργήσουμε έναν πίνακα μέσα σε αυτήν την ενότητα.

Page page = pdf.Pages.Add();
Table table1 = new Table();
table1. Margin. Top = 300;
page.Paragraphs.Add(table1);

Καθορίζουμε επίσης ένα κορυφαίο περιθώριο 300 πόντων για τον πίνακα. Μπορείτε να προσαρμόσετε αυτήν την τιμή σύμφωνα με τις ανάγκες σας.

Βήμα 4: Ρύθμιση πίνακα

Σε αυτό το βήμα, διαμορφώνουμε ιδιότητες πίνακα, όπως πλάτη στηλών και περιγράμματα.

table1. ColumnWidths = "100 100 100";
table1.DefaultCellBorder = new BorderInfo(BorderSide.All, 0.1F);
table1.Border = new BorderInfo(BorderSide.All, 1F);

Εδώ ορίζουμε το πλάτος των στηλών του πίνακα και τα περιγράμματα των κελιών. Μπορείτε να προσαρμόσετε αυτές τις τιμές σύμφωνα με τις προτιμήσεις σας.

Βήμα 5: Προσθέστε γραμμές και κελιά στον πίνακα

Τώρα θα δημιουργήσουμε σειρές και κελιά στον πίνακα χρησιμοποιώντας έναν βρόχο.

for (int RowCounter = 0; RowCounter <= 16; RowCounter++)
{
     Row row1 = table1.Rows.Add();
     row1.Cells.Add("col " + RowCounter.ToString() + ", 1");
     row1.Cells.Add("col " + RowCounter.ToString() + ", 2");
     row1.Cells.Add("col " + RowCounter.ToString() + ", 3");
}

Εδώ δημιουργούμε 17 σειρές στον πίνακα και προσθέτουμε τρία κελιά σε κάθε σειρά. Μπορείτε να προσαρμόσετε την πόρπη ανάλογα με τις ανάγκες σας.

Βήμα 6: Προσδιορισμός αλλαγών πίνακα

Τώρα θα προσδιορίσουμε αν ο πίνακας υπερβαίνει τα περιθώρια της σελίδας συγκρίνοντας το ύψος της σελίδας με το συνολικό ύψος των αντικειμένων στον πίνακα.

float PageHeight = (float)pdf.PageInfo.Height;
float TotalObjectsHeight = (float)page.PageInfo.Margin.Top + (float)page.PageInfo.Margin.Bottom + (float)table1.Margin.Top + (float)table1.GetHeight();

if ((PageHeight - TotalObjectsHeight) <= 10)
     Console.WriteLine("The height of the page - Height of objects < 10, the table will be truncated");

Υπολογίζουμε το ύψος της σελίδας και το συνολικό ύψος των αντικειμένων λαμβάνοντας υπόψη τα περιθώρια. Εάν η διαφορά είναι 10 ή μικρότερη, ο πίνακας υπερβαίνει τα περιθώρια της σελίδας.

Βήμα 7: Αποθήκευση του εγγράφου PDF

Τέλος, αποθηκεύουμε το έγγραφο PDF με τα αποτελέσματα.

string dataDir = "YOUR DOCUMENTS DIRECTORY";
dataDir = dataDir + "DetermineTableBreak_out.pdf";
pdf.Save(dataDir);
Console.WriteLine("\nTable break determined successfully.\nFile saved at " + dataDir);

Βεβαιωθείτε ότι έχετε καθορίσει τον σωστό κατάλογο εγγράφων. Το αρχείο PDF που προκύπτει θα αποθηκευτεί με τις καθορισμένες αλλαγές πίνακα.

Παράδειγμα πηγαίου κώδικα για Προσδιορισμός αλλαγής πίνακα χρησιμοποιώντας το Aspose.PDF για .NET

// Η διαδρομή προς τον κατάλογο εγγράφων.
string dataDir = "YOUR DOCUMENT DIRECTORY";

// Δημιουργήστε ένα αντικείμενο κλάσης PDF
Document pdf = new Document();
// Προσθέστε την ενότητα στη συλλογή ενοτήτων εγγράφων PDF
Aspose.Pdf.Page page = pdf.Pages.Add();
// Δημιουργήστε ένα αντικείμενο πίνακα
Aspose.Pdf.Table table1 = new Aspose.Pdf.Table();
table1.Margin.Top = 300;
// Προσθέστε τον πίνακα στη συλλογή παραγράφων της επιθυμητής ενότητας
page.Paragraphs.Add(table1);
// Σετ με τα πλάτη στηλών του πίνακα
table1.ColumnWidths = "100 100 100";
// Ορίστε το προεπιλεγμένο περίγραμμα κελιού χρησιμοποιώντας το αντικείμενο BorderInfo
table1.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 0.1F);
// Ορισμός περιγράμματος πίνακα χρησιμοποιώντας ένα άλλο προσαρμοσμένο αντικείμενο BorderInfo
table1.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 1F);
// Δημιουργήστε αντικείμενο MarginInfo και ορίστε τα περιθώρια αριστερά, κάτω, δεξιά και πάνω
Aspose.Pdf.MarginInfo margin = new Aspose.Pdf.MarginInfo();
margin.Top = 5f;
margin.Left = 5f;
margin.Right = 5f;
margin.Bottom = 5f;
// Ορίστε την προεπιλεγμένη συμπλήρωση κελιών στο αντικείμενο MarginInfo
table1.DefaultCellPadding = margin;
// Εάν αυξήσετε τον μετρητή στο 17, ο πίνακας θα σπάσει
// Επειδή δεν μπορεί πλέον να τοποθετηθεί σε αυτήν τη σελίδα
for (int RowCounter = 0; RowCounter <= 16; RowCounter++)
{
	// Δημιουργήστε σειρές στον πίνακα και μετά κελιά στις σειρές
	Aspose.Pdf.Row row1 = table1.Rows.Add();
	row1.Cells.Add("col " + RowCounter.ToString() + ", 1");
	row1.Cells.Add("col " + RowCounter.ToString() + ", 2");
	row1.Cells.Add("col " + RowCounter.ToString() + ", 3");
}
// Λάβετε τις πληροφορίες για το ύψος της σελίδας
float PageHeight = (float)pdf.PageInfo.Height;
// Λάβετε τις πληροφορίες συνολικού ύψους του περιθωρίου επάνω και κάτω σελίδας,
// Περιθώριο και ύψος τραπεζιού.
float TotalObjectsHeight = (float)page.PageInfo.Margin.Top + (float)page.PageInfo.Margin.Bottom + (float)table1.Margin.Top + (float)table1.GetHeight();

// Εμφάνιση ύψους σελίδας, ύψους πίνακα, περιθωρίου κορυφής πίνακα και κορυφής σελίδας
// Και πληροφορίες για το κάτω περιθώριο
Console.WriteLine("PDF document Height = " + pdf.PageInfo.Height.ToString() + "\nTop Margin Info = " + page.PageInfo.Margin.Top.ToString() + "\nBottom Margin Info = " + page.PageInfo.Margin.Bottom.ToString() + "\n\nTable-Top Margin Info = " + table1.Margin.Top.ToString() + "\nAverage Row Height = " + table1.Rows[0].MinRowHeight.ToString() + " \nTable height " + table1.GetHeight().ToString() + "\n ----------------------------------------" + "\nTotal Page Height =" + PageHeight.ToString() + "\nCummulative height including Table =" + TotalObjectsHeight.ToString());

// Ελέγξτε αν αφαιρούμε το άθροισμα του περιθωρίου επάνω σελίδας + περιθωρίου κάτω σελίδας
// + Περιθώριο κορυφής πίνακα και ύψος πίνακα από το ύψος της σελίδας και λιγότερο
// Από 10 (μια μέση σειρά μπορεί να είναι μεγαλύτερη από 10)
if ((PageHeight - TotalObjectsHeight) <= 10)
	// Εάν η τιμή είναι μικρότερη από 10, τότε εμφανίστε το μήνυμα.
	//Που δείχνει ότι δεν μπορεί να τοποθετηθεί άλλη σειρά και αν προσθέσουμε νέα
	// Σειρά, ο πίνακας θα σπάσει. Εξαρτάται από την τιμή του ύψους της σειράς.
	Console.WriteLine("Page Height - Objects Height < 10, so table will break");


dataDir = dataDir + "DetermineTableBreak_out.pdf";
// Αποθηκεύστε το έγγραφο pdf
pdf.Save(dataDir);

Console.WriteLine("\nTable break determined successfully.\nFile saved at " + dataDir);

συμπέρασμα

Σε αυτό το σεμινάριο, μάθαμε πώς να προσδιορίζουμε τις αλλαγές πίνακα σε ένα έγγραφο PDF χρησιμοποιώντας το Aspose.PDF για .NET. Μπορείτε να χρησιμοποιήσετε αυτόν τον οδηγό βήμα προς βήμα για να ελέγξετε εάν ένας πίνακας υπερβαίνει τα περιθώρια σελίδας στα δικά σας έργα C#.

Συχνές ερωτήσεις για τον προσδιορισμό της αλλαγής πίνακα σε αρχείο PDF

Ε: Ποιος είναι ο σκοπός του προσδιορισμού των αλλαγών πίνακα σε ένα έγγραφο PDF;

Α: Ο σκοπός του προσδιορισμού των αλλαγών πίνακα σε ένα έγγραφο PDF είναι να ελεγχθεί εάν ο πίνακας υπερβαίνει τα περιθώρια της σελίδας. Αυτό διασφαλίζει ότι το περιεχόμενο του πίνακα εμφανίζεται σωστά στον διαθέσιμο χώρο της σελίδας. Ανιχνεύοντας αλλαγές πίνακα, μπορείτε να χειριστείτε την υπερχείλιση περιεχομένου και να προσαρμόσετε ανάλογα τη διάταξη του πίνακα.

Ε: Πώς μπορώ να προσαρμόσω το επάνω περιθώριο του πίνακα;

Α: Στον παρεχόμενο πηγαίο κώδικα C#, μπορείτε να προσαρμόσετε το επάνω περιθώριο του πίνακα τροποποιώντας την τιμή τουtable1.Margin.Topιδιοκτησία. Αυξήστε ή μειώστε την τιμή όπως απαιτείται για να ορίσετε το επιθυμητό επάνω περιθώριο για τον πίνακα.

Ε: Μπορώ να προσαρμόσω την εμφάνιση του πίνακα, όπως χρώματα κελιών και μέγεθος γραμματοσειράς;

Α: Ναι, μπορείτε να προσαρμόσετε την εμφάνιση του πίνακα και των κελιών του χρησιμοποιώντας διάφορες ιδιότητες και μεθόδους που παρέχονται από το Aspose.PDF για .NET. Για παράδειγμα, μπορείτε να αλλάξετε τα χρώματα φόντου κελιών, το μέγεθος γραμματοσειράς, την οικογένεια γραμματοσειρών, τη στοίχιση κειμένου και άλλα. Ανατρέξτε στην επίσημη τεκμηρίωση για περισσότερες πληροφορίες σχετικά με τον τρόπο προσαρμογής της εμφάνισης του πίνακα.

Ε: Τι συμβαίνει εάν ο πίνακας υπερβαίνει τα περιθώρια της σελίδας;

Α: Εάν ο πίνακας υπερβαίνει τα περιθώρια της σελίδας, μπορεί να οδηγήσει σε περικοπή ή επικάλυψη περιεχομένου, καθιστώντας το έγγραφο PDF λιγότερο ευανάγνωστο και οργανωμένο. Με τον εντοπισμό αλλαγών πίνακα και τον χειρισμό της υπερχείλισης, μπορείτε να διασφαλίσετε ότι το περιεχόμενο θα εμφανίζεται σωστά στη διαθέσιμη περιοχή σελίδας.

Ε: Μπορώ να προσδιορίσω αλλαγές πίνακα για πολλούς πίνακες στο ίδιο έγγραφο PDF;

Α: Ναι, μπορείτε να προσδιορίσετε αλλαγές πίνακα για πολλούς πίνακες στο ίδιο έγγραφο PDF. Απλώς επαναλάβετε τα βήματα για κάθε πίνακα που θέλετε να αναλύσετε και προσαρμόστε τη διάταξη του πίνακα όπως απαιτείται για να αποτρέψετε την υπερχείλιση περιεχομένου.