Thursday, 24 August 2023 08:27

C#/VB.NET: estrae tabelle da PDF

Installato tramite NuGet

PM> Install-Package Spire.PDF

Link correlati

Il PDF è uno dei formati di documento più popolari per la condivisione e la scrittura di dati. Potresti incontrare la situazione in cui è necessario estrarre dati da documenti PDF, in particolare i dati nelle tabelle. Ad esempio, ci sono informazioni utili memorizzate nelle tabelle delle tue fatture PDF e desideri estrarre i dati per ulteriori analisi o calcoli. Questo articolo illustra come estrarre i dati dalle tabelle PDF e salvarlo in un file TXT utilizzando Spire.PDF for .NET.

Installa Spire.PDF for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

  • Package Manager
PM> Install-Package Spire.PDF 

Estrai dati da tabelle PDF

Di seguito sono riportati i passaggi principali per estrarre le tabelle da un documento PDF.

  • Crea un'istanza della classe PdfDocument.
  • Caricare il documento PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Estrai le tabelle da una pagina specifica utilizzando il metodo PdfTableExtractor.ExtractTable(int pageIndex).
  • Ottieni il testo di una determinata cella della tabella utilizzando il metodo PdfTable.GetText(int rowIndex, int columnIndex).
  • Salva i dati estratti in un file .txt.
  • C#
  • VB.NET
using System.IO;
    using System.Text;
    using Spire.Pdf;
    using Spire.Pdf.Utilities;
    
    namespace ExtractPdfTable
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Load the sample PDF file
                doc.LoadFromFile(@"C:\Users\Administrator\Desktop\table.pdf");
    
                //Create a StringBuilder object
                StringBuilder builder = new StringBuilder();
    
                //Initialize an instance of PdfTableExtractor class
                PdfTableExtractor extractor = new PdfTableExtractor(doc);
    
                //Declare a PdfTable array
                PdfTable[] tableList = null;
    
                //Loop through the pages
                for (int pageIndex = 0; pageIndex < doc.Pages.Count; pageIndex++)
                {
                    //Extract tables from a specific page
                    tableList = extractor.ExtractTable(pageIndex);
    
                    //Determine if the table list is null
                    if (tableList != null && tableList.Length > 0)
                    {
                        //Loop through the table in the list
                        foreach (PdfTable table in tableList)
                        {
                            //Get row number and column number of a certain table
                            int row = table.GetRowCount();
                            int column = table.GetColumnCount();
    
                            //Loop though the row and colunm
                            for (int i = 0; i < row; i++)
                            {
                                for (int j = 0; j < column; j++)
                                {
                                    //Get text from the specific cell
                                    string text = table.GetText(i, j);
    
                                    //Add text to the string builder
                                    builder.Append(text + " ");
                                }
                                builder.Append("\r\n");
                            }
                        }
                    }
                }
    
                //Write to a .txt file
                File.WriteAllText("Table.txt", builder.ToString());
            }
        }
    }
Imports System.IO
    Imports System.Text
    Imports Spire.Pdf
    Imports Spire.Pdf.Utilities
    
    Namespace ExtractPdfTable
        Class Program
            Shared  Sub Main(ByVal args() As String)
                'Create a PdfDocument object
                Dim doc As PdfDocument =  New PdfDocument()
    
                'Load the sample PDF file
                doc.LoadFromFile("C:\Users\Administrator\Desktop\table.pdf")
    
                'Create a StringBuilder object
                Dim builder As StringBuilder =  New StringBuilder()
    
                'Initialize an instance of PdfTableExtractor class
                Dim extractor As PdfTableExtractor =  New PdfTableExtractor(doc)
    
                'Declare a PdfTable array
                Dim tableList() As PdfTable =  Nothing
    
                'Loop through the pages
                Dim pageIndex As Integer
                For  pageIndex = 0 To  doc.Pages.Count- 1  Step  pageIndex + 1
                    'Extract tables from a specific page
                    tableList = extractor.ExtractTable(pageIndex)
    
                    'Determine if the table list is null
                    If tableList <> Nothing And tableList.Length > 0 Then
                        'Loop through the table in the list
                        Dim table As PdfTable
                        For Each table In tableList
                            'Get row number and column number of a certain table
                            Dim row As Integer =  table.GetRowCount()
                            Dim column As Integer =  table.GetColumnCount()
    
                            'Loop though the row and colunm
                            Dim i As Integer
                            For  i = 0 To  row- 1  Step  i + 1
                                Dim j As Integer
                                For  j = 0 To  column- 1  Step  j + 1
                                    'Get text from the specific cell
                                    Dim text As String =  table.GetText(i,j)
    
                                    'Add text to the string builder
                                    builder.Append(text + " ")
                                Next
                                builder.Append("\r\n")
                            Next
                        Next
                    End If
                Next
    
                'Write to a .txt file
                File.WriteAllText("Table.txt", builder.ToString())
            End Sub
        End Class
    End Namespace

C#/VB.NET: Extract Tables from PDF

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche

Published in pdf
Thursday, 24 August 2023 08:14

C#/VB.NET: crea tabelle in PDF

Installato tramite NuGet

PM> Install-Package Spire.PDF

Link correlati

Una tabella fornisce un accesso rapido ed efficiente ai dati visualizzati in righe e colonne in modo visivamente accattivante. Quando vengono presentati in una tabella, i dati hanno un impatto maggiore rispetto a quando vengono usati solo come parole e consentono ai lettori di confrontare e comprendere facilmente le relazioni tra di loro. In questo articolo imparerai come creare una tabella in PDF in C# e VB.NET utilizzando Spire.PDF for .NET.

Spire.PDF for .NET offre la classe PdfTable e PdfGrid per lavorare con le tabelle in un documento PDF. La classe PdfTable viene utilizzata per creare rapidamente tabelle semplici e regolari senza troppa formattazione, mentre la classe PdfGrid viene utilizzata per creare tabelle più complesse.

La tabella seguente elenca le differenze tra queste due classi.

PdfTable PdfGrid
Formattazione
Riga Può essere impostato tramite eventi. Nessun supporto API. Può essere impostato tramite API.
Colonna Può essere impostato tramite API (StringFormat). Può essere impostato tramite API (StringFormat).
Cellula Può essere impostato tramite eventi. Nessun supporto API. Può essere impostato tramite API.
Altri
Intervallo di colonne Non supporto. Può essere impostato tramite API.
Intervallo di fila Può essere impostato tramite eventi. Nessun supporto API. Può essere impostato tramite API.
Tavolo annidato Può essere impostato tramite eventi. Nessun supporto API. Può essere impostato tramite API.
Eventi BeginCellLayout,  EndCellLayout, BeginRowLayout, EndRowLayout, BeginPageLayout, EndPageLayout. InizioLayoutPagina, FineLayoutPagina.

Le sezioni seguenti mostrano come creare una tabella in PDF utilizzando rispettivamente la classe PdfTable e la classe PdfGrid.

Installa Spire.PDF for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

PM> Install-Package Spire.PDF

Creare una tabella utilizzando la classe PdfTable

Di seguito sono riportati i passaggi per creare una tabella utilizzando la classe PdfTable.

  • Creare un oggetto PdfDocument.
  • Aggiungi una pagina usando il metodo PdfDocument.Pages.Add().
  • Crea un oggetto Pdftable.
  • Impostare lo stile della tabella tramite la proprietà PdfTable.Style.
  • Inserire i dati nella tabella tramite la proprietà PdfTable.DataSource.
  • Imposta l'altezza e il colore della riga tramite l'evento BeginRowLayout.
  • Disegna la tabella sulla pagina PDF usando il metodo PdfTable.Draw().
  • Salvare il documento in un file PDF utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using System;
    using System.Data;
    using System.Drawing;
    using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using Spire.Pdf.Tables;
    
    namespace CreateTable
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Add a page
                PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(40));
    
                //Create a PdfTable object
                PdfTable table = new PdfTable();
    
                //Set font for header and the rest cells
                table.Style.DefaultStyle.Font = new PdfTrueTypeFont(new Font("Times New Roman", 12f, FontStyle.Regular), true);
                table.Style.HeaderStyle.Font = new PdfTrueTypeFont(new Font("Times New Roman", 12f, FontStyle.Bold), true);
    
                //Crate a DataTable
                DataTable dataTable = new DataTable();
                dataTable.Columns.Add("ID");
                dataTable.Columns.Add("Name");
                dataTable.Columns.Add("Department");
                dataTable.Columns.Add("Position");
                dataTable.Columns.Add("Level");
                dataTable.Rows.Add(new string[] { "1", "David", "IT", "Manager", "1" });
                dataTable.Rows.Add(new string[] { "3", "Julia", "HR", "Manager", "1" });
                dataTable.Rows.Add(new string[] { "4", "Sophie", "Marketing", "Manager", "1" });
                dataTable.Rows.Add(new string[] { "7", "Wickey", "Marketing", "Sales Rep", "2" });
                dataTable.Rows.Add(new string[] { "9", "Wayne", "HR", "HR Supervisor", "2" });
                dataTable.Rows.Add(new string[] { "11", "Mia", "Dev", "Developer", "2" });
    
                //Set the datatable as the data source of table
                table.DataSource = dataTable;
    
                //Show header(the header is hidden by default)
                table.Style.ShowHeader = true;
    
                //Set font color and backgroud color of header row
                table.Style.HeaderStyle.BackgroundBrush = PdfBrushes.Gray;
                table.Style.HeaderStyle.TextBrush = PdfBrushes.White;
    
                //Set text alignment in header row
                table.Style.HeaderStyle.StringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
    
                //Set text alignment in other cells
                for (int i = 0; i < table.Columns.Count; i++)
                {
                    table.Columns[i].StringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
                }
    
                //Register with BeginRowLayout event
                table.BeginRowLayout += Table_BeginRowLayout;
    
                //Draw table on the page
                table.Draw(page, new PointF(0, 30));
    
                //Save the document to a PDF file
                doc.SaveToFile("PdfTable.pdf");
            }
    
            //Event handler
            private static void Table_BeginRowLayout(object sender, BeginRowLayoutEventArgs args)
            {
                //Set row height
                args.MinimalHeight = 20f;
    
                //Alternate row color
                if (args.RowIndex < 0)
                {
                    return;
                }
                if (args.RowIndex % 2 == 1)
                {
                    args.CellStyle.BackgroundBrush = PdfBrushes.LightGray;
                }
                else
                {
                    args.CellStyle.BackgroundBrush = PdfBrushes.White;
                }
            }
        }
    }

C#/VB.NET: Create Tables in PDF

Creare una tabella utilizzando la classe PdfGrid

Di seguito sono riportati i passaggi per creare una tabella utilizzando la classe PdfGrid.

  • Creare un oggetto PdfDocument.
  • Aggiungi una pagina usando il metodo PdfDocument.Pages.Add().
  • Crea un oggetto PdfGrid.
  • Impostare lo stile della tabella tramite la proprietà PdfGrid.Style.
  • Aggiungi righe alla tabella utilizzando il metodo PdfGrid.Rows.Add().
  • Inserisci i dati in celle specifiche tramite la proprietà PdfGridRow.Cells[index].Value.
  • Estendi le celle su colonne o righe tramite la proprietà PdfGridRow.RowSpan o PdfGridRow.ColumnSpan.
  • Impostare la formattazione di una cella specifica tramite le proprietà PdfGridRow.Cells[index].StringFormat e PdfGridRow.Cells[index].Style.
  • Disegna la tabella sulla pagina PDF usando il metodo PdfGrid.Draw().
  • Salvare il documento in un file PDF utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using Spire.Pdf.Grid;
    using System.Drawing;
    
    namespace CreateGrid
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Add a page
                PdfPageBase page = doc.Pages.Add(PdfPageSize.A4,new PdfMargins(40));
    
                //Create a PdfGrid
                PdfGrid grid = new PdfGrid();
    
                //Set cell padding
                grid.Style.CellPadding = new PdfPaddings(1, 1, 1, 1);
    
                //Set font
                grid.Style.Font = new PdfTrueTypeFont(new Font("Times New Roman", 13f, FontStyle.Regular), true);
    
                //Add rows
                PdfGridRow row1 = grid.Rows.Add();
                PdfGridRow row2 = grid.Rows.Add();
                PdfGridRow row3 = grid.Rows.Add();
                PdfGridRow row4 = grid.Rows.Add();
                grid.Columns.Add(4);
    
                //Set column width
                foreach (PdfGridColumn col in grid.Columns)
                {
                    col.Width = 110f;
                }
    
                //Write data into specific cells
                row1.Cells[0].Value = "Order and Payment Status";
                row2.Cells[0].Value = "Order number";
                row2.Cells[1].Value = "Date";
                row2.Cells[2].Value = "Customer";
                row2.Cells[3].Value = "Paid or not";
                row3.Cells[0].Value = "00223";
                row3.Cells[1].Value = "2022/06/02";
                row3.Cells[2].Value = "Brick Lane Realty";
                row3.Cells[3].Value = "Yes";
                row4.Cells[0].Value = "00224";
                row4.Cells[1].Value = "2022/06/03";
                row4.Cells[3].Value = "No";
    
                //Span cell across columns
                row1.Cells[0].ColumnSpan = 4;
    
                //Span cell across rows
                row3.Cells[2].RowSpan = 2;
    
                //Set text alignment of specific cells
                row1.Cells[0].StringFormat = new PdfStringFormat(PdfTextAlignment.Center);
                row3.Cells[2].StringFormat = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);
    
                //Set background color of specific cells
                row1.Cells[0].Style.BackgroundBrush = PdfBrushes.Orange;
                row4.Cells[3].Style.BackgroundBrush = PdfBrushes.LightGray;
    
                //Format cell border
                PdfBorders borders = new PdfBorders();
                borders.All = new PdfPen(Color.Orange, 0.8f);
                foreach (PdfGridRow pgr in grid.Rows)
                {
                    foreach (PdfGridCell pgc in pgr.Cells)
                    {
                        pgc.Style.Borders = borders;
                    }
                }
    
                //Draw table on the page
                grid.Draw(page, new PointF(0, 30));
    
                //Save the document to a PDF file
                doc.SaveToFile("PdfGrid.pdf");
            }
        }
    }

C#/VB.NET: Create Tables in PDF

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche

Published in pdf

Installato tramite NuGet

PM> Install-Package Spire.PDF

Link correlati

I numeri di pagina sono essenziali sia per i documenti elettronici che per quelli cartacei. Rendono più facile per i lettori trovare e accedere rapidamente a parti specifiche di un documento senza dover sfogliare pagina per pagina. In questo articolo imparerai come aggiungere i numeri di pagina ai documenti PDF esistenti in C# e VB.NET utilizzando Spire.PDF for .NET.

Installa Spire.PDF for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

PM> Install-Package Spire.PDF

Aggiungi numeri di pagina a documenti PDF esistenti utilizzando C# e VB.NET

È possibile aggiungere numeri di pagina a un documento PDF utilizzando i campi dinamici: PdfPageNumberField, PdfPageCountField e PdfCompositeField.

Come suggeriscono i loro nomi, PdfPageNumberField viene utilizzato per visualizzare il numero di pagina, PdfPageCountField viene utilizzato per visualizzare il conteggio totale delle pagine e PdfCompositeField viene utilizzato per combinare due o più campi dinamici come PdfPageNumberField e PdfPageCountField in un unico campo.

Se desideri solo aggiungere numeri di pagina come Pagina 1, Pagina 2, Pagina 3... a un documento PDF, puoi semplicemente utilizzare PdfPageNumberField. Se desideri aggiungere numeri di pagina come Pagina X di Y al documento, devi utilizzare PdfPageNumberField, PdfPageCountField e PdfCompositeField.

I seguenti passaggi mostrano come aggiungere i numeri di pagina "Pagina X di Y" a un documento PDF esistente:

  • Inizializza un'istanza della classe PdfDocument.
  • Carica un documento PDF utilizzando il metodo PdfDocument.LoadFromFile().
  • Inizializza un'istanza della classe PdfPageNumberField.
  • Inizializza un'istanza della classe PdfPageCountField.
  • Inizializza un'istanza della classe PdfCompositeField.
  • Impostare l'allineamento del testo per il campo composito tramite la proprietà PdfCompositeField.StringFormat.
  • Passa attraverso ogni pagina nel documento PDF, quindi disegna il campo composito nella posizione specifica della pagina utilizzando il metodo PdfCompositeField.Draw().
  • Salvare il documento risultato utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.AutomaticFields;
    using Spire.Pdf.Graphics;
    using System.Drawing;
    
    
    namespace AddPageNumbers
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Load a PDF document
                PdfDocument pdf = new PdfDocument();
                pdf.LoadFromFile("Sample.pdf");
    
                //Create a true type font
                PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 10f, FontStyle.Regular), true);
    
                //Create a PdfPageNumberField instance
                PdfPageNumberField pageNumber = new PdfPageNumberField();
    
                //Create a PdfPageCountField instance
                PdfPageCountField pageCount = new PdfPageCountField();
    
                //Create a PdfCompositeField instance
                PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.Black, "Page {0} of {1}", pageNumber, pageCount);
                //Set the text alignment for the composite field
                compositeField.StringFormat = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Top);
    
                //Loop through the pages
                for(int i = 0; i < pdf.Pages.Count; i ++)
                {
                    //Draw composite filed on each page
                    compositeField.Draw(pdf.Pages[i].Canvas, pdf.Pages[i].Size.Width / 2 - 20, pdf.Pages[i].Size.Height - pdf.PageSettings.Margins.Bottom);
                }
    
                //Save the result document
                pdf.SaveToFile("AddPageNumbers.pdf");
            }
        }
    }

C#/VB.NET: Add Page Numbers to Existing PDF Documents

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche

Published in pdf

Installato tramite NuGet

PM> Install-Package Spire.PDF

Link correlati

In un documento PDF, lo sfondo si riferisce all'aspetto visivo generale dietro il contenuto delle pagine. Lo sfondo può essere un semplice colore a tinta unita o un'immagine a tua scelta. L'aggiunta di sfondi ai PDF può aiutarti ad aggiungere interesse visivo ai tuoi documenti e anche a migliorarne la leggibilità. In questo articolo imparerai a programmaticamente imposta il colore o l'immagine di sfondo per il PDF utilizzando Spire.PDF for .NET.

Installa Spire.PDF for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

PM> Install-Package Spire.PDF 

Aggiungi colore di sfondo ai documenti PDF in C# e VB.NET

La proprietà PdfPageBase.BackgroundColor offerta da Spire.PDF for .NET consente di impostare un colore a tinta unita come sfondo del PDF. Di seguito sono riportati i passaggi dettagliati.

  • Creare un'istanza PdfDocument.
  • Carica un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Passa attraverso tutte le pagine PDF e aggiungi un colore di sfondo a ciascuna pagina utilizzando la proprietà PdfPageBase.BackgroundColor.
  • Imposta l'opacità dello sfondo utilizzando la proprietà PdfPageBase.BackgroudOpacity.
  • Salvare il documento risultato utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using System.Drawing;
    
    namespace PDFBackgroundColor
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                //Load a sample PDF file from disk
                pdf.LoadFromFile("input.pdf");
    
                //Loop through the pages in the PDF file
                foreach (PdfPageBase page in pdf.Pages)
                {
                    //Set the background color for each page
                    page.BackgroundColor = Color.Yellow;
    
                    //Set the opacity of the background
                    page.BackgroudOpacity = 0.1f;
                }
    
                //Save the result PDF file
                pdf.SaveToFile("BackgroundColor.pdf");
                pdf.Close();
    
            }
        }
    }

C#/VB.NET: Add Background Color or Background Image to PDF

Aggiungi immagini di sfondo ai documenti PDF C# e VB.NET

Se desideri aggiungere un'immagine come sfondo che corrisponda al tema del documento, puoi utilizzare la proprietà PdfPageBase.BackgroundImage. Di seguito sono riportati i passaggi dettagliati.

  • Creare un'istanza PdfDocument.
  • Carica un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Passa attraverso tutte le pagine PDF e aggiungi un'immagine di sfondo a ciascuna pagina utilizzando la proprietà PdfPageBase.BackgroundImage.
  • Imposta l'opacità dello sfondo utilizzando la proprietà PdfPageBase.BackgroudOpacity.
  • Salvare il documento risultato utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using System.Drawing;
    
    namespace PDFBackgroundImage
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                //Load a sample PDF file from disk
                pdf.LoadFromFile("input.pdf");
    
                //Load an image
                Image background = Image.FromFile("background.png");
    
                //Loop through the pages in the PDF file
                foreach (PdfPageBase page in pdf.Pages)
                {
                    //Set the loaded image as the background image for each page
                    page.BackgroundImage = background;
    
                    //Set the opacity of the background
                    page.BackgroudOpacity = 0.2f;
                }
    
                //Save the result PDF file
                pdf.SaveToFile("BackgroundImage.pdf");
                pdf.Close();
    
            }
        }
    }

C#/VB.NET: Add Background Color or Background Image to PDF

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche

Published in pdf

Il livello PDF è una funzione che dispone il contenuto di un file PDF in livelli, che consente agli utenti di impostare selettivamente alcuni contenuti in modo che siano visibili e altri invisibili nello stesso file PDF. I livelli PDF sono un elemento comune utilizzato nella grafica a più livelli, nelle mappe e nei disegni CAD. Questo articolo dimostrerà come eseguire a livello di codice aggiungere, nascondere o eliminare livelli in un file PDF utilizzando Spire.PDF for .NET.

Installa Spire.PDF for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

PM> Install-Package Spire.PDF

Aggiungi livelli a un documento PDF in C# e VB.NET

Spire.PDF for .NET fornisce il metodo PdfDocument.Layers.AddLayer() per aggiungere un livello in un documento PDF e puoi quindi disegnare testo, linee, immagini o forme sul livello PDF. I passaggi dettagliati sono i seguenti.

  • Creare un'istanza PdfDocument.
  • Carica un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Aggiungi un livello con il nome specificato nel PDF utilizzando il metodo PdfDocument.Layers.AddLayer(String) oppure puoi anche impostare la visibilità del livello durante l'aggiunta utilizzando il metodo PdfDocument.Layers.AddLayer(String, PdfVisibility).
  • Crea una tela per il livello usando il metodo PdfLayer.CreateGraphics().
  • Disegna testo, immagine o altri elementi sulla tela.
  • Salvare il documento risultato utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using Spire.Pdf.Graphics.Layer;
    using System.Drawing;
    
    namespace AddLayersToPdf
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance and load a sample PDF file
                PdfDocument pdf = new PdfDocument();
                pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\Sample.pdf");
    
                //Invoke AddLayerWatermark method to add a watermark layer
                AddLayerWatermark(pdf);
    
                //Invoke AddLayerHeader method to add a header layer
                AddLayerHeader(pdf);
    
                //Save to file
                pdf.SaveToFile("AddLayers.pdf");
                pdf.Close();
            }
    
            private static void AddLayerWatermark(PdfDocument doc)
            {
                //Create a layer named "Watermark"
                PdfLayer layer = doc.Layers.AddLayer("Watermark");
    
                //Create a font
                PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 48), true);
    
                //Specify the watermark text
                string watermarkText = "CONFIDENTIAL";
    
                //Get text size
                SizeF fontSize = font.MeasureString(watermarkText);
    
                //Calculate two offsets
                float offset1 = (float)(fontSize.Width * System.Math.Sqrt(2) / 4);
                float offset2 = (float)(fontSize.Height * System.Math.Sqrt(2) / 4);
    
                //Get page count
                int pageCount = doc.Pages.Count;
    
                //Declare two variables
                PdfPageBase page;
                PdfCanvas canvas;
    
                //Loop through the pages
                for (int i = 0; (i < pageCount); i++)
                {
                    page = doc.Pages[i];
    
                    //Create a canvas from layer
                    canvas = layer.CreateGraphics(page.Canvas);
                    canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2);
                    canvas.SetTransparency(0.4f);
                    canvas.RotateTransform(-45);
    
                    //Draw sting on the canvas of layer
                    canvas.DrawString(watermarkText, font, PdfBrushes.DarkBlue, 0, 0);
                }
            }
            private static void AddLayerHeader(PdfDocument doc)
            {
                // Create a layer named "Header"
                PdfLayer layer = doc.Layers.AddLayer("Header");
    
                //Get page size
                SizeF size = doc.Pages[0].Size;
    
                //Specify the initial values of X and y
                float x = 90;
                float y = 40;
    
                //Get page count
                int pageCount = doc.Pages.Count;
    
                //Declare two variables
                PdfPageBase page;
                PdfCanvas canvas;
    
                //Loop through the pages
                for (int i = 0; (i < pageCount); i++)
                {
                    //Draw an image on the layer
                    PdfImage pdfImage = PdfImage.FromFile(@"C:\Users\Administrator\Desktop\img.jpg");
                    float width = pdfImage.Width;
                    float height = pdfImage.Height;
                    page = doc.Pages[i];
                    canvas = layer.CreateGraphics(page.Canvas);
                    canvas.DrawImage(pdfImage, x, y, width, height);
    
                    //Draw a line on the layer
                    PdfPen pen = new PdfPen(PdfBrushes.DarkGray, 2);
                    canvas.DrawLine(pen, x, (y + (height + 5)), (size.Width - x), (y + (height + 2)));
                }
            }
        }
    } 

C#/VB.NET: Add, Hide or Delete Layers in PDF

Imposta la visibilità dei livelli in un documento PDF in C# e VB.NET

Per impostare la visibilità di un layer esistente, è necessario ottenere un layer specificato in base al suo indice o nome utilizzando la proprietà PdfDocument.Layers, quindi mostrare o nascondere il layer utilizzando la proprietà PdfLayer.Visibility.I passaggi dettagliati sono i seguenti.

  • Creare un'istanza PdfDocument.
  • Carica un documento PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Imposta la visibilità di un layer specificato utilizzando la proprietà PdfDocument.Layers.Visibility.
  • Salvare il documento risultato utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Graphics.Layer;
    
    namespace HideLayer
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                //Load a sample PDF document
                pdf.LoadFromFile("AddLayers.pdf");
    
                //Hide a specified layer by index
                pdf.Layers[0].Visibility = PdfVisibility.Off;
    
                //Hide a specified layer by name
                //pdf.Layers["Watermark"].Visibility = PdfVisibility.Off;
    
                //Save the result document
                pdf.SaveToFile("HideLayer.pdf");
            }
        }
    }

C#/VB.NET: Add, Hide or Delete Layers in PDF

Elimina livelli in un documento PDF in C# e VB.NET

Spire.PDF for .NET ti consente anche di rimuovere un livello esistente in base al suo nome utilizzando il metodo PdfDocument.Layers.RemoveLayer(String).Ma tieni presente che i nomi dei livelli PDF potrebbero non essere univoci e questo metodo rimuoverà tutti i livelli PDF con lo stesso nome I passaggi dettagliati sono i seguenti.

  • Creare un'istanza PdfDocument.
  • Carica un documento PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Elimina un layer specificato in base al suo nome utilizzando il metodo PdfDocument.Layers.RemoveLayer(String).
  • Salvare il documento risultato utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    
    namespace DeleteLayer
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                //Load a sample PDF document
                pdf.LoadFromFile("AddLayers.pdf");
    
                //Remove a layer by name
                pdf.Layers.RemoveLayer(("Watermark"));
    
                //Save the result document
                pdf.SaveToFile("DeleteLayer.pdf", FileFormat.PDF);
            }
        }
    }

C#/VB.NET: Add, Hide or Delete Layers in PDF

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche

Published in pdf
Friday, 18 August 2023 02:02

C#/VB.NET: crea un documento PDF

Installato tramite NuGet

PM> Install-Package Spire.PDF

Link correlati

La creazione di documenti PDF dal codice offre una vasta gamma di vantaggi. Ad esempio, è possibile incorporare facilmente contenuto dinamico come input dell'utente, record di database o dati in tempo reale. La generazione di PDF basata su codice consente una maggiore personalizzazione e automazione, riducendo al minimo l'intervento manuale nella creazione di documenti altamente personalizzati. In questo articolo imparerai come creare un documento PDF da zero in C# e VB.NET utilizzando Spire.PDF for .NET.

Installa Spire.PDF for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

PM> Install-Package Spire.PDF

Conoscenze di base

Una pagina in Spire.PDF (rappresentata da PdfPageBase) è costituita da area client e margini tutt'intorno. L'area del contenuto consente agli utenti di scrivere vari contenuti e i margini sono generalmente bordi vuoti.

Come mostrato nella figura seguente, l'origine del sistema di coordinate sulla pagina si trova nell'angolo in alto a sinistra dell'area client, con l'asse x che si estende orizzontalmente verso destra e l'asse y che si estende verticalmente verso il basso. Tutti gli elementi aggiunti all'area client devono essere basati sulle coordinate specificate.

C#/VB.NET: Create a PDF Document

Inoltre, la tabella seguente elenca le classi e i metodi importanti, che possono aiutarti a comprendere facilmente il frammento di codice fornito nella sezione seguente.

Membro Descrizione
Classe PdfDocument Rappresenta un modello di documento PDF.
Classe PdfPageBase Rappresenta una pagina in un documento PDF.
Classe PdfSolidBrush Rappresenta un pennello che riempie qualsiasi oggetto con un colore a tinta unita.
Classe PdfTrueTypeFont Rappresenta un font true type.
Classe PdfStringFormat Rappresenta le informazioni sul formato del testo, come l'allineamento, la spaziatura dei caratteri e il rientro.
Classe PdfTextWidget Rappresenta l'area di testo con la possibilità di estendersi su più pagine.
Classe PdfTextLayout Rappresenta le informazioni sul layout del testo.
Metodo PdfDocument.Pages.Add() Aggiunge una pagina a un documento PDF.
Metodo PdfPageBase.Canvas.DrawString() Disegna una stringa su una pagina nella posizione specificata con caratteri e oggetti pennello specificati.
Metodo PdfTextWidget.Draw() Disegna il widget di testo su una pagina nella posizione specificata.
Metodo PdfDocument.Save() Salva il documento in un file PDF.

Crea un documento PDF da zero in C# e VB.NET

Sebbene Spire.PDF for .NET supporti l'aggiunta di vari tipi di elementi ai documenti PDF, questo articolo illustra solo come creare un documento PDF con testo normale. Di seguito sono riportati i passaggi dettagliati.

  • Creare un oggetto PdfDocument.
  • Aggiungere una pagina utilizzando il metodo PdfDocument.Pages.Add().
  • Crea oggetti pennello e carattere.
  • Disegna la stringa sulla pagina in corrispondenza di una coordinata specificata utilizzando il metodo PdfPageBase.Canvas.DrawString().
  • Crea un oggetto PdfTextWidget per contenere una porzione di testo.
  • Disegna il widget di testo sulla pagina in una posizione specificata utilizzando il metodo PdfTextWidget.Draw().
  • Salvare il documento in un file PDF utilizzando il metodo PdfDocument.Save().
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using System.Drawing;
    
    namespace CreatePdfDocument
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Add a page
                PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(35f));
    
                //Specify heading text
                String titleText = "What is MySQL";
    
                //Create solid brushes
                PdfSolidBrush titleBrush = new PdfSolidBrush(new PdfRGBColor(Color.Blue));
                PdfSolidBrush paraBrush = new PdfSolidBrush(new PdfRGBColor(Color.Black));
    
                //Create true type fonts
                PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("Times New Roman", 18f, FontStyle.Bold),true);
                PdfTrueTypeFont paraFont = new PdfTrueTypeFont(new Font("Times New Roman", 12f, FontStyle.Regular), true);
    
                //Set the text alignment via PdfStringFormat class
                PdfStringFormat format = new PdfStringFormat();
                format.Alignment = PdfTextAlignment.Center;
    
                //Draw heading on the center of the page
                page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 20, format);
    
                //Get paragraph content from a .txt file
                string paraText = File.ReadAllText("C:\\Users\\Administrator\\Desktop\\content.txt");
    
                //Create a PdfTextWidget object to hold the paragrah content
                PdfTextWidget widget = new PdfTextWidget(paraText, paraFont, paraBrush);
    
                //Create a rectangle where the paragraph content will be placed
                RectangleF rect = new RectangleF(0, 50, page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height);
    
                //Set the PdfLayoutType to Paginate to make the content paginated automatically
                PdfTextLayout layout = new PdfTextLayout();
                layout.Layout = PdfLayoutType.Paginate;
    
                //Draw the widget on the page
                widget.Draw(page, rect, layout);
    
                //Save to file
                doc.SaveToFile("CreatePdfDocument.pdf");
                doc.Dispose();
            }
        }
    }

C#/VB.NET: Create a PDF Document

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche

Published in pdf
Monday, 07 August 2023 03:49

C#/VB.NET: Dividi PDF in più file PDF

Installato tramite NuGet

PM> Install-Package Spire.PDF

Link correlati

È utile dividere un singolo PDF in più file più piccoli in determinate situazioni. Ad esempio, puoi dividere contratti, relazioni, libri, documenti accademici o altri documenti di grandi dimensioni in parti più piccole per renderli più facili da rivedere o riutilizzare. In questo articolo imparerai come dividere PDF in PDF a pagina singola e come dividere PDF per intervalli di pagine in C# e VB.NET utilizzando Spire.PDF for .NET.

Installa Spire.PDF for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

PM> Install-Package Spire.PDF

Dividi PDF in PDF di una pagina in C#, VB.NET

Spire.PDF offre il metodo Split() per dividere un documento PDF multipagina in più file a pagina singola. Di seguito sono riportati i passaggi dettagliati.

  • Crea un oggetto PdfDcoument.
  • Carica un documento PDF utilizzando il metodo PdfDocument.LoadFromFile().
  • Dividi il documento in PDF di una pagina utilizzando il metodo PdfDocument.Split(string destFilePattern, int startNumber).
  • C#
  • VB.NET
using System;
    using Spire.Pdf;
    
    namespace SplitPDFIntoIndividualPages
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Specify the input file path
                String inputFile = "C:\\Users\\Administrator\\Desktop\\Terms of Service.pdf";
    
                //Specify the output directory
                String outputDirectory = "C:\\Users\\Administrator\\Desktop\\Output\\";
    
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Load a PDF file
                doc.LoadFromFile(inputFile);
    
                //Split the PDF to one-page PDFs
                doc.Split(outputDirectory + "output-{0}.pdf", 1);
            }
        }
    }

C#/VB.NET: Split PDF into Separate PDFs

Dividi PDF per intervalli di pagine in C#, VB.NET

Non viene offerto alcun metodo semplice per suddividere i documenti PDF per intervalli di pagine. Per fare ciò, creiamo due o più nuovi documenti PDF e importiamo in essi la pagina o l'intervallo di pagine dal documento di origine. Ecco i passaggi dettagliati.

  • Carica il file PDF di origine durante l'inizializzazione dell'oggetto PdfDocument.
  • Creare due oggetti PdfDocument aggiuntivi.
  • Importa la prima pagina dal file di origine al primo documento utilizzando il metodo PdfDocument.InsertPage().
  • Importa le pagine rimanenti dal file di origine al secondo documento utilizzando il metodo PdfDocument.InsertPageRange().
  • Salvare i due documenti come file PDF separati utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using System;
    
    namespace SplitPdfByPageRanges
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Specify the input file path
                String inputFile = "C:\\Users\\Administrator\\Desktop\\Terms of Service.pdf";
    
                //Specify the output directory
                String outputDirectory = "C:\\Users\\Administrator\\Desktop\\Output\\";
    
                //Load the source PDF file while initialing the PdfDocument object
                PdfDocument sourceDoc = new PdfDocument(inputFile);
    
                //Create two additional PdfDocument objects
                PdfDocument newDoc_1 = new PdfDocument();
                PdfDocument newDoc_2 = new PdfDocument();
    
                //Insert the first page of source file to the first document
                newDoc_1.InsertPage(sourceDoc, 0);
    
                //Insert the rest pages of source file to the second document
                newDoc_2.InsertPageRange(sourceDoc, 1, sourceDoc.Pages.Count - 1);
    
                //Save the two documents as PDF files
                newDoc_1.SaveToFile(outputDirectory + "output-1.pdf");
                newDoc_2.SaveToFile(outputDirectory + "output-2.pdf");
            }
        }
    }

C#/VB.NET: Split PDF into Separate PDFs

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche

Published in pdf

Installato tramite NuGet

PM> Install-Package Spire.PDF

Link correlati

La crittografia dei PDF è un compito cruciale quando si tratta di condividere documenti riservati su Internet. Crittografando i file PDF con password complesse, è possibile proteggere i dati del file dall'accesso da parte di soggetti non autorizzati. In alcuni casi, potrebbe anche essere necessario rimuovere la password per rendere pubblico il documento. In questo articolo imparerai a programmaticamente crittografare o decrittografare un file PDF utilizzando Spire.PDF for .NET.

Installa Spire.PDF for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

PM> Install-Package Spire.PDF

Crittografare un file PDF con password

Esistono due tipi di password per crittografare un file PDF: password di apertura e password di autorizzazione. Il primo è impostato per aprire il file PDF, mentre il secondo è impostato per limitare la stampa, la copia dei contenuti, i commenti, ecc. Se un file PDF è protetto con entrambi i tipi di password, può essere aperto con entrambe le password.

Il metodo PdfSecurity.Encrypt(string openPassword, string permissionPassword, PdfPermissionsFlags permissions, PdfEncryptionKeySize keySize) offerto da Spire.PDF for .NET consente di impostare sia la password di apertura che la password di autorizzazione per crittografare i file PDF. I passaggi dettagliati sono i seguenti.

  • Creare un oggetto PdfDocument.
  • Carica un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Ottiene i parametri di sicurezza del documento utilizzando la proprietà PdfDocument.Security.
  • Crittografare il file PDF con password di apertura e password di autorizzazione utilizzando il metodo PdfSecurity.Encrypt(string openPassword, string permissionPassword, PdfPermissionsFlags, PdfEncryptionKeySize keySize).
  • Salvare il file dei risultati utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Security;
    
    namespace EncryptPDF
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument pdf = new PdfDocument();
    
                //Load a sample PDF file
                pdf.LoadFromFile(@"E:\Files\sample.pdf");
    
                //Encrypt the PDF file with password
                pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit);
    
                //Save the result file
                pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF);
            }
        }
    }

C#/VB.NET: Encrypt or Decrypt PDF Files

Rimuovi la password per decrittografare un file PDF

Quando è necessario rimuovere la password da un file PDF, è possibile impostare la password di apertura e la password di autorizzazione su vuoto durante la chiamata al metodo PdfSecurity.Encrypt(string openPassword, string permissionPassword, PdfPermissionsFlags, PdfEncryptionKeySize keySize, string originalPermissionPassword). I passaggi dettagliati sono i seguenti.

  • Creare un oggetto PdfDocument.
  • Caricare il file PDF crittografato con password utilizzando il metodo PdfDocument.LoadFromFile (nome file stringa, password stringa).
  • Ottiene i parametri di sicurezza del documento utilizzando la proprietà PdfDocument.Security.
  • Decrittografare il file PDF impostando la password di apertura e la password di autorizzazione su vuoto utilizzando PdfSecurity.Encrypt(string openPassword, string permissionPassword, PdfPermissionsFlags permissions, PdfEncryptionKeySize keySize, string originalPermissionPassword) metodo.
  • Salvare il file dei risultati utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Security;
    
    namespace DecryptPDF
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument pdf = new PdfDocument();
    
                //Load the encrypted PDF file with password
                pdf.LoadFromFile("Encrypt.pdf", "open");
    
                //Set the password as empty to decrypt PDF
                pdf.Security.Encrypt(string.Empty, string.Empty, PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key128Bit, "permission");
    
                //Save the result file
                pdf.SaveToFile("Decrypt.pdf", FileFormat.PDF);
            }
        }
    } 

C#/VB.NET: Encrypt or Decrypt PDF Files

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche

Published in pdf

La firma digitale assicura che il documento firmato non possa essere alterato da nessuno che non sia il suo autore. L'aggiunta di firme è il modo più comune per garantire l'autenticità del contenuto del documento. Una firma digitale visiva in un documento PDF può mostrare testo o un'immagine (ad esempio, firma scritta a mano). Questo articolo introduce come firmare digitalmente i PDF utilizzando Spire.PDF for .NET dai seguenti tre aspetti.

Installa Spire.PDF for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

PM> Install-Package Spire.PDF

Firma digitalmente PDF con testo

Di seguito sono riportati i passaggi per aggiungere una firma in testo normale a un documento PDF.

  • Creare un oggetto PdfDocument e caricare un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Carica un file di certificato .pfx durante l'inizializzazione dell'oggetto PdfCertificate.
  • Crea un oggetto PdfSignature, specificandone la posizione e le dimensioni nel documento.
  • Imposta la modalità grafica della firma su SignDetail, che mostrerà i dettagli della firma in testo normale.
  • Imposta i dettagli della firma, inclusi nome, informazioni di contatto, motivo, data, ecc. tramite le proprietà sotto l'oggetto PdfSignature.
  • Impostare le autorizzazioni del documento certificato su ForbidChanges e AllowFormFill.
  • Salvare il documento in un altro file utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Security;
    using System;
    using System.Drawing;
    using Spire.Pdf.Graphics;
    
    namespace AddTextSignature
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Load a sample PDF file
                doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");
    
                //Load the certificate
                PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue");
    
                //Create a PdfSignature object and specify its position and size
                PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count-1], cert, "MySignature");
                RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 340, 150, 290, 100);
                signature.Bounds = rectangleF;
                signature.Certificated = true;
    
                //Set the graphics mode to sign detail
                signature.GraphicsMode = GraphicMode.SignDetail;
    
                //Set the signature content
                signature.NameLabel = "Signer:";
                signature.Name = "Gary";
                signature.ContactInfoLabel = "Phone:";
                signature.ContactInfo = "0123456";
                signature.DateLabel = "Date:";
                signature.Date = DateTime.Now;
                signature.LocationInfoLabel = "Location:";
                signature.LocationInfo = "USA";
                signature.ReasonLabel = "Reason:";
                signature.Reason = "I am the author";
                signature.DistinguishedNameLabel = "DN:";
                signature.DistinguishedName = signature.Certificate.IssuerName.Name;
    
                //Set the signature font
                signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS",12f,FontStyle.Regular));
    
                //Set the document permission to forbid changes but allow form fill
                signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill;
    
                //Save to file
                doc.SaveToFile("TextSignature.pdf");
                doc.Close();
            }
        }
    }

C#/VB.NET: Digitally Sign PDF with Text or/and Image

Firma digitalmente PDF con un'immagine

Di seguito sono riportati i passaggi per aggiungere una firma immagine a un documento PDF.

  • Creare un oggetto PdfDocument e caricare un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Carica un file di certificato .pfx durante l'inizializzazione dell'oggetto PdfCertificate.
  • Crea un oggetto PdfSignature, specificandone la posizione e le dimensioni nel documento.
  • Imposta la modalità grafica della firma su SignImageOnly, che mostrerà solo l'immagine della firma.
  • Impostare l'immagine della firma tramite la proprietà PdfSignature.SignImageSource.
  • Impostare le autorizzazioni del documento certificato su ForbidChanges e AllowFormFill.
  • Salvare il documento in un altro file utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using Spire.Pdf.Security;
    using System.Drawing;
    
    namespace AddImageSignature
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Load a sample PDF file
                doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");
    
                //Load the certificate
                PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue");
    
                //Create a PdfSignature object and specify its position and size
                PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature");
                RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 200, 150, 130, 130);
                signature.Bounds = rectangleF;
                signature.Certificated = true;
    
                //Set the graphics mode to image only
                signature.GraphicsMode = GraphicMode.SignImageOnly;
    
                //Set the sign image source
                signature.SignImageSource = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\verified.png");
    
                //Set the signature font
                signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular));
    
                //Set the document permission to forbid changes but allow form fill
                signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill;
    
                //Save to file
                doc.SaveToFile("ImageSignature.pdf");
                doc.Close();
            }
        }
    }

C#/VB.NET: Digitally Sign PDF with Text or/and Image

Firma digitalmente PDF con testo e un'immagine

Di seguito sono riportati i passaggi per firmare digitalmente un documento PDF con testo e un'immagine.

  • Creare un oggetto PdfDocument e caricare un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Carica un file di certificato .pfx durante l'inizializzazione dell'oggetto PdfCertificate.
  • Crea un oggetto PdfSignature, specificandone la posizione e le dimensioni nel documento.
  • Imposta la modalità grafica della firma su SignImageAndSignDetail, che mostrerà sia l'immagine della firma che i dettagli.
  • Impostare l'immagine della firma tramite la proprietà PdfSignature.SignImageSource e impostare i dettagli della firma, inclusi nome, informazioni di contatto, motivo, data e così via tramite altre proprietà nell'oggetto PdfSignature.
  • Impostare le autorizzazioni del documento certificato su ForbidChanges e AllowFormFill.
  • Salvare il documento in un altro file utilizzando il metodo PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Security;
    using System;
    using System.Drawing;
    using Spire.Pdf.Graphics;
    
    namespace AddTextAndImageSignature
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Load a sample PDF file
                doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");
    
                //Load the certificate
                PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue");
    
                //Create a PdfSignature object and specify its position and size
                PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature");
                RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 320, 150, 260, 110);
                signature.Bounds = rectangleF;
                signature.Certificated = true;
    
                //Set the graphics mode to image and sign detail
                signature.GraphicsMode = GraphicMode.SignImageAndSignDetail;
    
                //Set the signature content
                signature.NameLabel = "Signer:";
                signature.Name = "Gary";
                signature.ContactInfoLabel = "Phone:";
                signature.ContactInfo = "0123456";
                signature.DateLabel = "Date:";
                signature.Date = DateTime.Now;
                signature.LocationInfoLabel = "Location:";
                signature.LocationInfo = "USA";
                signature.ReasonLabel = "Reason:";
                signature.Reason = "I am the author";
                signature.DistinguishedNameLabel = "DN:";
                signature.DistinguishedName = signature.Certificate.IssuerName.Name;
    
                //Set the signature image source
                signature.SignImageSource = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\handSignature.png");
    
                //Set the signature font
                signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular));
    
                //Set the document permission to forbid changes but allow form fill
                signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill;
    
                //Save to file
                doc.SaveToFile("TextAndImageSignature.pdf");
                doc.Close();
            }
        }
    }

C#/VB.NET: Digitally Sign PDF with Text or/and Image

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche

Published in pdf

Installato tramite NuGet

PM> Install-Package Spire.PDF

Link correlati

XPS è un formato simile al PDF ma utilizza XML nel layout, nell'aspetto e nelle informazioni di stampa di un file. Il formato XPS è stato sviluppato da Microsoft ed è nativamente supportato dai sistemi operativi Windows. Se vuoi lavorare con i tuoi file PDF su un computer Windows senza installare altro software, puoi convertirli in formato XPS. Allo stesso modo, se devi condividere un file XPS con un utente Mac o utilizzarlo su vari dispositivi, è consigliabile convertirlo in PDF. Questo articolo dimostrerà come eseguire a livello di codice convertire PDF in XPS o XPS in PDF utilizzando Spire.PDF for .NET.

Installa Spire.PDF for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

PM> Install-Package Spire.PDF 

Converti PDF in XPS in C# e VB.NET

Spire.PDF for .NET supporta la conversione di PDF in vari formati di file e per ottenere la conversione da PDF a XPS, sono necessarie solo tre righe di codice di base. Di seguito sono riportati i passaggi dettagliati.

  • Creare un'istanza PdfDocument.
  • Carica un documento PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Convertire il documento PDF in un file XPS utilizzando il metodo PdfDocument.SaveToFile (string filename, FileFormat.XPS).
  • C#
  • VB.NET
using Spire.Pdf;
    
    namespace ConvertPdfToXps
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                //Load sample PDF document
                pdf.LoadFromFile("sample.pdf");
    
                //Save it to XPS format
                pdf.SaveToFile("ToXPS.xps", FileFormat.XPS);
                pdf.Close();
            }
        }
    }

C#/VB.NET: Convert PDF to XPS or XPS to PDF

Converti XPS in PDF in C# e VB.NET

La conversione da XPS a PDF può essere ottenuta anche con Spire.PDF for .NET. Durante la conversione, è possibile impostare per mantenere un'immagine di alta qualità sul file PDF generato utilizzando il metodo PdfDocument.ConvertOptions.SetXpsToPdfOptions(). Di seguito sono riportati i passaggi dettagliati.

  • Creare un'istanza PdfDocument.
  • Caricare un file XPS utilizzando il metodo PdfDocument.LoadFromFile(string filename, FileFormat.XPS) o il metodo PdfDocument.LoadFromXPS().
  • Durante la conversione, imposta le opzioni di conversione da XPS a PDF per mantenere immagini di alta qualità utilizzando il metodo PdfDocument.ConvertOptions.SetXpsToPdfOptions().
  • Salvare il file XPS in un file PDF utilizzando il metodo PdfDocument.SaveToFile(string filename, FileFormat.PDF).
  • C#
  • VB.NET
using Spire.Pdf;
    
    namespace ConvertXPStoPDF
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                //Load a sample XPS file
                pdf.LoadFromFile("Sample.xps", FileFormat.XPS);
                //pdf.LoadFromXPS("Sample.xps");
    
                //Keep high quality images when converting XPS to PDF
                pdf.ConvertOptions.SetXpsToPdfOptions(true);
    
                //Save the XPS file to PDF
                pdf.SaveToFile("XPStoPDF.pdf", FileFormat.PDF);
            }
        }
    }

C#/VB.NET: Convert PDF to XPS or XPS to PDF

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche

Published in pdf
Page 2 of 2