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

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.
C#/VB.NET: crea tabelle in PDF
Sommario
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;
}
}
}
}

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");
}
}
}

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.
C#/VB.NET: Aggiungi numeri di pagina a documenti PDF esistenti
Sommario
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");
}
}
}

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.
C#/VB.NET: aggiungi il colore di sfondo o l'immagine di sfondo al PDF
Sommario
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();
}
}
}

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();
}
}
}

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.
C#/VB.NET: aggiungi, nascondi o elimina livelli in PDF
Sommario
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
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.
- Aggiungi livelli a un documento PDF in C# e VB.NET
- Imposta la visibilità dei livelli in un documento PDF in C# e VB.NET
- Elimina livelli in un documento PDF in C# e VB.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)));
}
}
}
}

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");
}
}
}

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);
}
}
}

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.
C#/VB.NET: crea un documento PDF
Sommario
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.

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();
}
}
}

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.
C#/VB.NET: Dividi PDF in più file PDF
Sommario
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);
}
}
}

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");
}
}
}

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.
C#/VB.NET: crittografa o decrittografa i file PDF
Sommario
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);
}
}
}

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);
}
}
}

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.
C#/VB.NET: firma digitale PDF con testo e/o immagine
Sommario
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
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.
- Firma digitalmente PDF con testo
- Firma digitalmente PDF con un'immagine
- Firma digitalmente PDF con testo e un'immagine
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();
}
}
}

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();
}
}
}

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();
}
}
}

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.
C#/VB.NET: Converti PDF in XPS o XPS in PDF
Sommario
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();
}
}
}

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);
}
}
}

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.