C#/VB.NET: aggiungi o rimuovi firme digitali in PDF
Sommario
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
Poiché i documenti PDF diventano sempre più popolari nel mondo degli affari, garantirne l'autenticità è diventata una preoccupazione fondamentale. Firmare i PDF con una firma basata su certificato può proteggere il contenuto e anche far sapere ad altri chi ha firmato o approvato il documento. In questo articolo imparerai come farlo firmare digitalmente i PDF con una firma invisibile o visibile e come rimuovere le firme digitali dai PDF utilizzando Spire.PDF for .NET.
- Aggiungi una firma digitale invisibile al PDF
- Aggiungi una firma digitale visibile al PDF
- Rimuovere le firme digitali dai PDF
Installa Spire.PDF for .NET
Per cominciare, devi aggiungere i file DLL inclusi nel pacchetto Spire.PDF for .NET come riferimenti nel tuo progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.
PM> Install-Package Spire.PDF
Aggiungi una firma digitale invisibile al PDF
Di seguito sono riportati i passaggi per aggiungere una firma digitale invisibile al PDF utilizzando Spire.PDF for .NET.
- Crea un oggetto PdfDocument.
- Carica 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 basato sul certificato.
- Imposta i permessi del documento tramite l'oggetto PdfSignature.
- Salva il documento in un altro file PDF utilizzando il metodo PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Security; namespace AddInvisibleSignature { 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 PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature"); //Set the document permission to forbid changes but allow form fill signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill; //Save to another PDF file doc.SaveToFile("InvisibleSignature.pdf"); doc.Close(); } } }
Aggiungi una firma digitale visibile al PDF
Di seguito sono riportati i passaggi per aggiungere una firma digitale visibile al PDF utilizzando Spire.PDF for .NET.
- Crea un oggetto PdfDocument.
- Carica 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 e specificane la posizione e le dimensioni sul documento.
- Imposta i dettagli della firma tra cui data, nome, posizione, motivo, immagine della firma scritta a mano e autorizzazioni del documento.
- Salva il documento in un altro file PDF utilizzando il metodo PdfDocument.SaveToFile().
- C#
- VB.NET
using System; using System.Drawing; using Spire.Pdf; using Spire.Pdf.Security; using Spire.Pdf.Graphics; namespace AddVisibleSignature { 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 - 260 - 54 , 200, 260, 110); signature.Bounds = rectangleF; signature.Certificated = true; //Set the graphics mode to ImageAndSignDetail 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\\handwrittingSignature.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("VisiableSignature.pdf"); doc.Close(); } } }
Rimuovere le firme digitali dai PDF
Di seguito sono riportati i passaggi per rimuovere le firme digitali dal PDF utilizzando Spire.PDF for .NET.
- Crea un oggetto PdfDocument.
- Ottieni i widget del modulo dal documento tramite la proprietà PdfDocument.Form.
- Passa in rassegna i widget e determina se un widget specifico è un PdfSignatureFieldWidget.
- Rimuovere il widget della firma utilizzando il metodo PdfFieldCollection.RemoveAt().
- Salva il documento in un altro file PDF utilizzando il metodo PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Widget; namespace RemoveSignature { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument("C:\\Users\\Administrator\\Desktop\\VisiableSignature.pdf"); //Get form widgets from the document PdfFormWidget widgets = doc.Form as PdfFormWidget; //Loop through the widgets for (int i = 0; i < widgets.FieldsWidget.List.Count; i++) { //Get the specific widget PdfFieldWidget widget = widgets.FieldsWidget.List[i] as PdfFieldWidget; //Determine if the widget is a PdfSignatureFieldWidget if (widget is PdfSignatureFieldWidget) { //Remove the widget widgets.FieldsWidget.RemoveAt(i); } } //Save the document to another PDF file doc.SaveToFile("RemoveSignatures.pdf"); } } }
Richiedi una licenza temporanea
Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni della funzione, per favore richiedere una licenza di prova di 30 giorni per te.
C#/VB.NET: converti più immagini in un unico PDF
Sommario
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
Se disponi di più immagini che desideri combinare in un unico file per una distribuzione o un'archiviazione più semplice, convertirle in un unico documento PDF è un'ottima soluzione. Questo processo non solo consente di risparmiare spazio, ma garantisce anche che tutte le immagini siano conservate insieme in un unico file, rendendone conveniente la condivisione o il trasferimento. In questo articolo imparerai come farlo combinare diverse immagini in un unico documento PDF in C# e VB.NET utilizzando Spire.PDF for .NET.
Installa Spire.PDF for .NET
Per cominciare, devi aggiungere i file DLL inclusi nel pacchetto Spire.PDF for .NET come riferimenti nel tuo progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.
PM> Install-Package Spire.PDF
Combina più immagini in un unico PDF in C# e VB.NET
Per convertire tutte le immagini di una cartella in un PDF, iteriamo su ciascuna immagine, aggiungiamo una nuova pagina al PDF con le stesse dimensioni dell'immagine, quindi disegniamo l'immagine sulla nuova pagina. Di seguito sono riportati i passaggi dettagliati.
- Crea un oggetto PdfDocument.
- Imposta i margini della pagina su zero utilizzando il metodo PdfDocument.PageSettings.SetMargins().
- Ottieni la cartella in cui sono archiviate le immagini.
- Scorri ogni file immagine nella cartella e ottieni la larghezza e l'altezza di un'immagine specifica.
- Aggiungi una nuova pagina che abbia la stessa larghezza e altezza dell'immagine al documento PDF utilizzando il metodo PdfDocument.Pages.Add().
- Disegna l'immagine sulla pagina utilizzando il metodo PdfPageBase.Canvas.DrawImage().
- Salvare il documento utilizzando il metodo PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Graphics; using System.Drawing; namespace ConvertMultipleImagesIntoPdf { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Set the page margins to 0 doc.PageSettings.SetMargins(0); //Get the folder where the images are stored DirectoryInfo folder = new DirectoryInfo(@"C:\Users\Administrator\Desktop\Images"); //Iterate through the files in the folder foreach (FileInfo file in folder.GetFiles()) { //Load a particular image Image image = Image.FromFile(file.FullName); //Get the image width and height float width = image.PhysicalDimension.Width; float height = image.PhysicalDimension.Height; //Add a page that has the same size as the image PdfPageBase page = doc.Pages.Add(new SizeF(width, height)); //Create a PdfImage object based on the image PdfImage pdfImage = PdfImage.FromImage(image); //Draw image at (0, 0) of the page page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height); } //Save to file doc.SaveToFile("CombinaImagesToPdf.pdf"); doc.Dispose(); } } }
Richiedi una licenza temporanea
Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni della funzione, per favore richiedere una licenza di prova di 30 giorni per te.
C#/VB.NET: converti PDF in SVG
Sommario
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
SVG (Scalable Vector Graphics) è un formato di file immagine utilizzato per il rendering di immagini bidimensionali sul Web. Rispetto ad altri formati di file immagine, SVG presenta molti vantaggi come il supporto dell'interattività e dell'animazione, consentendo agli utenti di cercare, indicizzare, creare script e comprimere/ingrandire le immagini senza perdere la qualità. Occasionalmente potrebbe essere necessario convertire i file PDF nel formato file SVG e questo articolo dimostrerà come eseguire questa attività utilizzando Spire.PDF for .NET.
- Converti un file PDF in SVG in C#/VB.NET
- Converti le pagine PDF selezionate in SVG in C#/VB.NET
- Converti un file PDF in SVG con larghezza e altezza personalizzate in C#/VB.NET
Installa Spire.PDF for .NET
Per cominciare, devi aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel tuo progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.
PM> Install-Package Spire.PDF
Converti un file PDF in SVG in C#/VB.NET
Spire.PDF for .NET offre il metodo PdfDocument.SaveToFile(String, FileFormat) per convertire ogni pagina in un file PDF in un singolo file SVG. I passaggi dettagliati sono i seguenti.
- Crea un oggetto PdfDocument.
- Carica un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
- Converti il file PDF in SVG utilizzando il metodo PdfDocument.SaveToFile(String, FileFormat).
- C#
- VB.NET
using Spire.Pdf; namespace ConvertPDFtoSVG { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument document = new PdfDocument(); //Load a sample PDF file document.LoadFromFile("input.pdf"); //Convert PDF to SVG document.SaveToFile("PDFtoSVG.svg", FileFormat.SVG); } } }
Converti le pagine PDF selezionate in SVG in C#/VB.NET
Il metodo PdfDocument.SaveToFile(String, Int32, Int32, FileFormat) consente di convertire le pagine specificate in un file PDF in file SVG. I passaggi dettagliati sono i seguenti.
- Crea un oggetto PdfDocument.
- Carica un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
- Converti le pagine PDF selezionate in SVG utilizzando il metodo PdfDocument.SaveToFile(String, Int32, Int32, FileFormat).
- C#
- VB.NET
using Spire.Pdf; namespace PDFPagetoSVG { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Load a sample PDF file doc.LoadFromFile("input.pdf"); //Convert selected PDF pages to SVG doc.SaveToFile("PDFPagetoSVG.svg", 1, 2, FileFormat.SVG); } } }
Converti un file PDF in SVG con larghezza e altezza personalizzate in C#/VB.NET
Il metodo PdfConvertOptions.SetPdfToSvgOptions() offerto da Spire.PDF for .NET consente di specificare la larghezza e l'altezza del file SVG di output. I passaggi dettagliati sono i seguenti.
- Crea un oggetto PdfDocument.
- Carica un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
- Imposta le opzioni di conversione PDF utilizzando la proprietà PdfDocument.ConvertOptions.
- Specificare la larghezza e l'altezza del file SVG di output utilizzando il metodo PdfConvertOptions.SetPdfToSvgOptions().
- Converti il file PDF in SVG utilizzando il metodo PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; namespace PDFtoSVG { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument document = new PdfDocument(); //Load a sample PDF file document.LoadFromFile("input.pdf"); //Specify the width and height of output SVG file document.ConvertOptions.SetPdfToSvgOptions(800f, 1200f); //Convert PDF to SVG document.SaveToFile("result.svg", FileFormat.SVG); } } }
Richiedi una licenza temporanea
Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni della funzione, per favore richiedere una licenza di prova di 30 giorni per te.
C#/VB.NET: converti PDF in linearizzato
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
La linearizzazione PDF, nota anche come "Fast Web View", è un modo per ottimizzare i file PDF. Di solito, gli utenti possono visualizzare un file PDF multipagina online solo quando i loro browser web hanno scaricato tutte le pagine dal server. Tuttavia, se il file PDF è linearizzato, i browser possono visualizzare la prima pagina molto rapidamente anche se il download completo non è stato completato. Questo articolo mostrerà come farlo convertire un PDF in linearizzato in C# e VB.NET utilizzando Spire.PDF for .NET.
Installa Spire.PDF for .NET
Per cominciare, devi aggiungere i file DLL inclusi nel pacchetto Spire.PDF for .NET come riferimenti nel tuo progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.
- Package Manager
PM> Install-Package Spire.PDF
Converti PDF in linearizzato
Di seguito sono riportati i passaggi per convertire un file PDF in linearizzato:
- Carica un file PDF utilizzando la classe PdfToLinearizedPdfConverter.
- Convertire il file in linearizzato utilizzando il metodo PdfToLinearizedPdfConverter.ToLinearizedPdf().
- C#
- VB.NET
using Spire.Pdf.Conversion; namespace ConvertPdfToLinearized { class Program { static void Main(string[] args) { //Load a PDF file PdfToLinearizedPdfConverter converter = new PdfToLinearizedPdfConverter("Sample.pdf"); //Convert the file to a linearized PDF converter.ToLinearizedPdf("Linearized.pdf"); } } }
Imports Spire.Pdf.Conversion Namespace ConvertPdfToLinearized Friend Class Program Private Shared Sub Main(ByVal args As String()) 'Load a PDF file Dim converter As PdfToLinearizedPdfConverter = New PdfToLinearizedPdfConverter("Sample.pdf") 'Convert the file to a linearized PDF converter.ToLinearizedPdf("Linearized.pdf") End Sub End Class End Namespace
Apri il file dei risultati in Adobe Acrobat e dai un'occhiata alle proprietà del documento, puoi vedere che il valore di "Fast Web View" è Sì, il che significa che il file è linearizzato.
Richiedi una licenza temporanea
Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni della funzione, per favore richiedere una licenza di prova di 30 giorni per te.
C#/VB.NET: trova ed evidenzia testo specifico nel PDF
Sommario
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
La ricerca di un testo specifico in un documento PDF a volte può essere fastidiosa, soprattutto quando il documento contiene centinaia di pagine. Evidenziare il testo con un colore di sfondo può aiutarti a trovarlo e localizzarlo rapidamente. In questo articolo imparerai come trovare ed evidenziare testo specifico in PDF in C# e VB.NET utilizzando Spire.PDF for .NET.
Installa Spire.PDF for .NET
Per cominciare, devi aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel tuo progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.
PM> Install-Package Spire.PDF
Trova ed evidenzia testo specifico in PDF in C# e VB.NET
Di seguito sono riportati i passaggi per trovare ed evidenziare un testo specifico in un documento PDF:
- Crea un'istanza PdfDocument.
- Carica un documento PDF utilizzando il metodo PdfDocument.LoadFromFile().
- Crea un'istanza PdfTextFindOptions.
- Specificare il parametro di ricerca del testo tramite la proprietà PdfTextFindOptions.Parameter.
- Scorri le pagine del documento PDF.
- All'interno del ciclo, crea un'istanza PdfTextFinder e imposta l'opzione di ricerca del testo tramite la proprietà PdfTextFinder.Options.
- Trova un testo specifico nel documento utilizzando il metodo PdfTextFinder.Find() e salva i risultati in un elenco PdfTextFragment.
- Passa in rassegna l'elenco e chiama il metodo PdfTextFragment.Highlight() per evidenziare tutte le occorrenze del testo specifico con il colore.
- Salvare il documento risultante utilizzando il metodo PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Texts; using System.Collections.Generic; using System.Drawing; namespace HighlightTextInPdf { internal class Program { static void Main(string[] args) { //Create a PdfDocument instance PdfDocument pdf = new PdfDocument(); //Load a PDF file pdf.LoadFromFile("Sample.pdf"); //Creare a PdfTextFindOptions instance PdfTextFindOptions findOptions = new PdfTextFindOptions(); //Specify the text finding parameter findOptions.Parameter = TextFindParameter.WholeWord; //Loop through the pages in the PDF file foreach (PdfPageBase page in pdf.Pages) { //Create a PdfTextFinder instance PdfTextFinder finder = new PdfTextFinder(page); //Set the text finding option finder.Options = findOptions; //Find a specific text List<PdfTextFragment> results = finder.Find("Video"); //Highlight all occurrences of the specific text foreach (PdfTextFragment text in results) { text.HighLight(Color.Green); } } //Save the result file pdf.SaveToFile("HighlightText.pdf"); } } }
Richiedi una licenza temporanea
Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni della funzione, per favore richiedere una licenza di prova di 30 giorni per te.
C#/VB.NET: estrae immagini da PDF
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
Le immagini vengono spesso utilizzate nei documenti PDF per presentare le informazioni in modo facilmente comprensibile. In alcuni casi, potrebbe essere necessario estrarre immagini da documenti PDF. Ad esempio, quando desideri utilizzare un'immagine del grafico da un report PDF in una presentazione o in un altro documento. Questo articolo mostrerà come farlo estrarre immagini da PDF in C# e VB.NET utilizzando Spire.PDF for .NET.
Installa Spire.PDF for .NET
Per cominciare, devi aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel tuo progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.
PM> Install-Package Spire.PDF
Estrai immagini da PDF in C# e VB.NET
Di seguito sono riportati i passaggi principali per estrarre immagini da un documento PDF utilizzando Spire.PDF for .NET:
- Crea un oggetto PdfDocument.
- Carica un documento PDF utilizzando il metodo PdfDocument.LoadFromFile().
- Passa in rassegna tutte le pagine del documento.
- Estrai le immagini da ogni pagina utilizzando il metodo PdfPageBase.ExtractImages() e salvale in un percorso file specificato.
- C#
- VB.NET
using Spire.Pdf; using System.Drawing; namespace ExtractImages { class Program { static void Main(string[] args) { //Create a PdfDocument instance PdfDocument pdf = new PdfDocument(); //Load a PDF document pdf.LoadFromFile("Input.pdf"); int i = 1; //Loop through all pages in the document foreach (PdfPageBase page in pdf.Pages) { //Extract images from each page and save them to a specified file path foreach (Image image in page.ExtractImages()) { image.Save(@"C:/Users/Administrator/Desktop/Images/" + "image" + i + ".png", System.Drawing.Imaging.ImageFormat.Png); i++; } } } } }
Richiedi una licenza temporanea
Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni della funzione, per favore richiedere una licenza di prova di 30 giorni per te.
C#/VB.NET: estrae testo da documenti PDF
Sommario
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
I documenti PDF hanno un layout fisso e non consentono agli utenti di apportare modifiche al loro interno. Per rendere nuovamente modificabile il contenuto del PDF, puoi farlo convertire PDF in Word o estrarre testo da PDF. In questo articolo imparerai come farlo estrarre il testo da una pagina PDF specifica, come estrarre il testo da una particolare area rettangolare, e come farlo estrarre testo con SimpleTextExtractionStrategy in C# e VB.NET utilizzando Spire.PDF for .NET.
- Estrai testo da una pagina specificata
- Estrai testo da un rettangolo
- Estrai testo utilizzando SimpleTextExtractionStrategy
Installa Spire.PDF for .NET
Per cominciare, devi aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel tuo progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.
PM> Install-Package Spire.PDF
Estrai testo da una pagina specificata
Di seguito sono riportati i passaggi per estrarre il testo da una determinata pagina di un documento PDF utilizzando Spire.PDF for .NET.
- Crea un oggetto PdfDocument.
- Carica un file PDF utilizzando il metodo PdfDocument.LoadFromFile().
- Ottieni la pagina specifica tramite la proprietà PdfDocument.Pages[index].
- Crea un oggetto PdfTextExtractor.
- Crea un oggetto PdfTextExtractOptions e imposta la proprietà IsExtractAllText su true.
- Estrai il testo dalla pagina selezionata utilizzando il metodo PdfTextExtractor.ExtractText().
- Scrivi il testo estratto in un file TXT.
- C#
- VB.NET
using System; using System.IO; using Spire.Pdf; using Spire.Pdf.Texts; namespace ExtractTextFromPage { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Load a PDF file doc.LoadFromFile(@"C:\Users\Administrator\Desktop\Terms of Service.pdf"); //Get the second page PdfPageBase page = doc.Pages[1]; //Create a PdfTextExtractot object PdfTextExtractor textExtractor = new PdfTextExtractor(page); //Create a PdfTextExtractOptions object PdfTextExtractOptions extractOptions = new PdfTextExtractOptions(); //Set isExtractAllText to true extractOptions.IsExtractAllText = true; //Extract text from the page string text = textExtractor.ExtractText(extractOptions); //Write to a txt file File.WriteAllText("Extracted.txt", text); } } }
Estrai testo da un rettangolo
Di seguito sono riportati i passaggi per estrarre il testo da un'area rettangolare di una pagina utilizzando Spire.PDF for .NET.
- Crea un oggetto PdfDocument.
- Carica un file PDF utilizzando il metodo PdfDocument.LoadFromFile().
- Ottieni la pagina specifica tramite la proprietà PdfDocument.Pages[index].
- Crea un oggetto PdfTextExtractor.
- Crea un oggetto PdfTextExtractOptions e specifica l'area del rettangolo tramite la sua proprietà ExtractArea.
- Estrai il testo dal rettangolo utilizzando il metodo PdfTextExtractor.ExtractText().
- Scrivi il testo estratto in un file TXT.
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Texts; using System.IO; using System.Drawing; namespace ExtractTextFromRectangleArea { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Load a PDF file doc.LoadFromFile(@"C:\Users\Administrator\Desktop\Terms of Service.pdf"); //Get the second page PdfPageBase page = doc.Pages[1]; //Create a PdfTextExtractot object PdfTextExtractor textExtractor = new PdfTextExtractor(page); //Create a PdfTextExtractOptions object PdfTextExtractOptions extractOptions = new PdfTextExtractOptions(); //Set the rectangle area extractOptions.ExtractArea = new RectangleF(0, 0, 890, 170); //Extract text from the rectangle string text = textExtractor.ExtractText(extractOptions); //Write to a txt file File.WriteAllText("Extracted.txt", text); } } }
Estrai testo utilizzando SimpleTextExtractionStrategy
I metodi precedenti estraggono il testo riga per riga. Quando si estrae il testo utilizzando SimpleTextExtractionStrategy, tiene traccia della posizione Y corrente di ciascuna stringa e inserisce un'interruzione di riga nell'output se la posizione Y è cambiata. Di seguito sono riportati i passaggi dettagliati.
- Crea un oggetto PdfDocument.
- Carica un file PDF utilizzando il metodo PdfDocument.LoadFromFile().
- Ottieni la pagina specifica tramite la proprietà PdfDocument.Pages[index].
- Crea un oggetto PdfTextExtractor.
- Crea un oggetto PdfTextExtractOptions e imposta la proprietà IsSimpleExtraction su true.
- Estrai il testo dalla pagina selezionata utilizzando il metodo PdfTextExtractor.ExtractText().
- Scrivi il testo estratto in un file TXT.
- C#
- VB.NET
using System.IO; using Spire.Pdf; using Spire.Pdf.Texts; namespace SimpleExtraction { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Load a PDF file doc.LoadFromFile(@"C:\Users\Administrator\Desktop\Invoice.pdf"); //Get the first page PdfPageBase page = doc.Pages[0]; //Create a PdfTextExtractor object PdfTextExtractor textExtractor = new PdfTextExtractor(page); //Create a PdfTextExtractOptions object PdfTextExtractOptions extractOptions = new PdfTextExtractOptions(); //Set IsSimpleExtraction to true extractOptions.IsSimpleExtraction = true; //Extract text from the selected page string text = textExtractor.ExtractText(extractOptions); //Write to a txt file File.WriteAllText("Extracted.txt", text); } } }
Richiedi una licenza temporanea
Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni della funzione, per favore richiedere una licenza di prova di 30 giorni per te.
C#/VB.NET: inserisci, sostituisci o elimina immagini in PDF
Sommario
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
Rispetto ai documenti di solo testo, i documenti contenenti immagini sono senza dubbio più vividi e coinvolgenti per i lettori. Quando generi o modifichi un documento PDF, a volte potrebbe essere necessario inserire immagini per migliorarne l'aspetto e renderlo più accattivante. In questo articolo imparerai come inserire, sostituire o eliminare immagini nei documenti PDF in C# e VB.NET utilizzando Spire.PDF for .NET.
- Inserisci un'immagine in un documento PDF
- Sostituisci un'immagine con un'altra immagine in un documento PDF
- Elimina un'immagine specifica in un documento PDF
Installa Spire.PDF for .NET
Per cominciare, devi aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel tuo progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.
PM> Install-Package Spire.PDF
Inserisci un'immagine in un documento PDF in C# e VB.NET
I seguenti passaggi mostrano come inserire un'immagine in un documento PDF esistente:
- Inizializza un'istanza della classe PdfDocument.
- Carica un documento PDF utilizzando il metodo PdfDocument.LoadFromFile().
- Ottieni la pagina desiderata nel documento PDF tramite la proprietà PdfDocument.Pages[pageIndex].
- Carica un'immagine utilizzando il metodo PdfImage.FromFile().
- Specificare la larghezza e l'altezza dell'area dell'immagine sulla pagina.
- Specificare le coordinate X e Y per iniziare a disegnare l'immagine.
- Disegna l'immagine sulla pagina utilizzando il metodo PdfPageBase.Canvas.DrawImage().
- Salvare il documento risultante utilizzando il metodo PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Graphics; namespace InsertImage { class Program { static void Main(string[] args) { //Create a PdfDocument instance PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile("Input.pdf"); //Get the first page in the PDF document PdfPageBase page = pdf.Pages[0]; //Load an image PdfImage image = PdfImage.FromFile("image.jpg"); //Specify the width and height of the image area on the page float width = image.Width * 0.50f; float height = image.Height * 0.50f; //Specify the X and Y coordinates to start drawing the image float x = 180f; float y = 70f; //Draw the image at a specified location on the page page.Canvas.DrawImage(image, x, y, width, height); //Save the result document pdf.SaveToFile("AddImage.pdf", FileFormat.PDF); } } }
Sostituisci un'immagine con un'altra immagine in un documento PDF in C# e VB.NET
I seguenti passaggi dimostrano come sostituire un'immagine con un'altra immagine in un documento PDF:
- Inizializza un'istanza della classe PdfDocument.
- Carica un documento PDF utilizzando il metodo PdfDocument.LoadFromFile().
- Ottieni la pagina desiderata nel documento PDF tramite la proprietà PdfDocument.Pages[pageIndex].
- Carica un'immagine utilizzando il metodo PdfImage.FromFile().
- Inizializza un'istanza della classe PdfImageHelper.
- Ottieni le informazioni sull'immagine dalla pagina utilizzando il metodo PdfImageHelper.GetImagesInfo().
- Sostituisci un'immagine specifica sulla pagina con l'immagine caricata utilizzando il metodo PdfImageHelper.ReplaceImage().
- Salvare il documento risultante utilizzando il metodo PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Utilities; namespace ReplaceImage { class Program { static void Main(string[] args) { //Create a PdfDocument instance PdfDocument doc = new PdfDocument(); //Load a PDF document doc.LoadFromFile("AddImage.pdf"); //Get the first page PdfPageBase page = doc.Pages[0]; //Load an image PdfImage image = PdfImage.FromFile("image1.jpg"); //Create a PdfImageHelper instance PdfImageHelper imageHelper = new PdfImageHelper(); //Get the image information from the page PdfImageInfo[] imageInfo = imageHelper.GetImagesInfo(page); //Replace the first image on the page with the loaded image imageHelper.ReplaceImage(imageInfo[0], image); //Save the result document doc.SaveToFile("ReplaceImage.pdf", FileFormat.PDF); } } }
Elimina un'immagine specifica in un documento PDF in C# e VB.NET
I seguenti passaggi mostrano come eliminare un'immagine da un documento PDF:
- Inizializza un'istanza della classe PdfDocument.
- Carica un documento PDF utilizzando il metodo PdfDocument.LoadFromFile().
- Ottieni la pagina desiderata nel documento PDF tramite la proprietà PdfDocument.Pages[pageIndex].
- Elimina un'immagine specifica sulla pagina utilizzando il metodo PdfPageBase.DeleteImage().
- Salvare il documento risultante utilizzando il metodo PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; namespace DeleteImage { class Program { static void Main(string[] args) { //Create a PdfDocument instance PdfDocument pdf = new PdfDocument(); //Load a PDF document pdf.LoadFromFile("AddImage.pdf"); //Get the first page PdfPageBase page = pdf.Pages[0]; //Delete the first image on the page page.DeleteImage(0); //Save the result document pdf.SaveToFile("DeleteImage.pdf", FileFormat.PDF); } } }
Richiedi una licenza temporanea
Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni della funzione, per favore richiedere una licenza di prova di 30 giorni per te.
C#/VB.NET: aggiungi filigrane di immagini al PDF
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
Una filigrana di immagine è solitamente un logo o un segno che appare sullo sfondo di documenti digitali, indicando il proprietario del copyright del contenuto. La filigrana del documento PDF con un'immagine può impedire il riutilizzo o la modifica dei dati. Questo articolo illustra come aggiungere una filigrana immagine al PDF 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.
- Package Manager
PM> Install-Package Spire.PDF
Aggiungi una filigrana immagine al PDF
Di seguito sono riportati i passaggi principali per aggiungere una filigrana immagine a un documento PDF.
- Creare un oggetto PdfDocument e caricare un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
- Carica un file immagine usando il metodo Image.FromFile().
- Scorrere le pagine del documento e ottenere la pagina specifica tramite la proprietà PdfDocument.Pages[].
- Impostare l'immagine come immagine di sfondo/filigrana della pagina corrente tramite la proprietà PdfPageBase.BackgroundImage. Impostare la posizione e le dimensioni dell'immagine tramite la proprietà PdfPageBase.BackgroundRegion.
- Salvare il documento in un file PDF diverso utilizzando il metodo PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using System.Drawing; namespace AddImageWatermark { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument document = new PdfDocument(); //Load a sample PDF document document.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf"); //Load an image Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\logo.png"); //Get the image width and height int imgWidth = image.Width; int imgHeight = image.Height; //Loop through the pages for (int i = 0; i < document.Pages.Count; i++) { //Get the page width and height float pageWidth = document.Pages[i].ActualSize.Width; float pageHeight = document.Pages[i].ActualSize.Height; //Set the background opacity document.Pages[i].BackgroudOpacity = 0.3f; //Set the background image of current page document.Pages[i].BackgroundImage = image; //Position the background image at the center of the page Rectangle rect = new Rectangle((int)(pageWidth - imgWidth) / 2, (int)(pageHeight - imgHeight) / 2, imgWidth, imgHeight); document.Pages[i].BackgroundRegion = rect; } //Save the document to file document.SaveToFile("AddImageWatermark.pdf"); document.Close(); } } }
Imports Spire.Pdf Imports System.Drawing Namespace AddImageWatermark Class Program Shared Sub Main(ByVal args() As String) 'Create a PdfDocument object Dim document As PdfDocument = New PdfDocument() 'Load a sample PDF document document.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf") 'Load an image Dim image As Image = Image.FromFile("C:\Users\Administrator\Desktop\logo.png") 'Get the image width and height Dim imgWidth As Integer = image.Width Dim imgHeight As Integer = image.Height 'Loop through the pages Dim i As Integer For i = 0 To document.Pages.Count- 1 Step i + 1 'Get the page width and height Dim pageWidth As single = document.Pages(i).ActualSize.Width Dim pageHeight As single = document.Pages(i).ActualSize.Height 'Set the background opacity document.Pages(i).BackgroudOpacity = 0.3f 'Set the background image of current page document.Pages(i).BackgroundImage = image 'Position the background image at the center of the page Dim rect As Rectangle = New Rectangle(CType((pageWidth - imgWidth) / 2,(Integer)(pageHeight - imgHeight) / 2,imgWidth,imgHeight, Integer)) document.Pages(i).BackgroundRegion = rect Next 'Save the document to file document.SaveToFile("AddImageWatermark.pdf") document.Close() 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: aggiungi filigrane di testo al PDF
Sommario
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
Per evitare che il tuo documento PDF venga utilizzato in modo non autorizzato, puoi filigranare il documento con testo o un'immagine. In questo articolo imparerai a programmaticamente aggiungere filigrane di testo (filigrane a riga singola e multilinea) a PDF 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.
- Package Manager
PM> Install-Package Spire.PDF
Aggiungi una filigrana di testo al PDF
Spire.PDF non fornisce un'interfaccia o una classe per gestire le filigrane nei file PDF. Potresti, tuttavia, disegnare testo come "riservato", "uso interno" o "bozza" su ogni pagina per imitare l'effetto filigrana. Di seguito sono riportati i passaggi principali per aggiungere una filigrana di testo a tutte le pagine di un documento PDF.
- Creare un oggetto PdfDocument e caricare un documento PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
- Creare un oggetto PdfTrueTypeFont, specificare il testo della filigrana e misurare la dimensione del testo utilizzando il metodo PdfFontBase.MeasureString().
- Attraversa tutte le pagine del documento.
- Traduci il sistema di coordinate di una determinata pagina in base alle coordinate specificate utilizzando il metodo PdfPageBase.Canvas.TraslateTransform() e ruota il sistema di coordinate di 45 gradi in senso antiorario utilizzando il metodo PdfPageBase.Canvas.RotateTransform(). Ciò garantisce che la filigrana appaia al centro della pagina con un angolo di 45 gradi.
- Disegna il testo della filigrana sulla pagina utilizzando il metodo PdfPageBase.Canvas.DrawString().
- Salvare il documento in un file PDF diverso utilizzando il metodo PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Graphics; using System.Drawing; namespace AddTextWatermarkToPdf { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument pdf = new PdfDocument(); //Load a sample PDF document pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf"); //Create a PdfTrueTypeFont object PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 50f), true); //Set the watermark text string text = "CONFIDENTIAL"; //Measure the text size SizeF textSize = font.MeasureString(text); //Calculate the values of two offset variables, //which will be used to calculate the translation amount of the coordinate system float offset1 = (float)(textSize.Width * System.Math.Sqrt(2) / 4); float offset2 = (float)(textSize.Height * System.Math.Sqrt(2) / 4); //Traverse all the pages in the document foreach (PdfPageBase page in pdf.Pages) { //Set the page transparency page.Canvas.SetTransparency(0.8f); //Translate the coordinate system by specified coordinates page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2); //Rotate the coordinate system 45 degrees counterclockwise page.Canvas.RotateTransform(-45); //Draw watermark text on the page page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0); } //Save the changes to another file pdf.SaveToFile("TextWatermark.pdf"); } } }
Imports Spire.Pdf Imports Spire.Pdf.Graphics Imports System.Drawing Namespace AddTextWatermarkToPdf Class Program Shared Sub Main(ByVal args() As String) 'Create a PdfDocument object Dim pdf As PdfDocument = New PdfDocument() 'Load a sample PDF document pdf.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf") 'Create a PdfTrueTypeFont object Dim font As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("Arial",50f),True) 'Set the watermark text Dim text As String = "CONFIDENTIAL" 'Measure the text size Dim textSize As SizeF = font.MeasureString(text) 'Calculate the values of two offset variables, 'which will be used to calculate the translation amount of the coordinate system Dim offset1 As single = CType((textSize.Width * System.Math.Sqrt(2) / 4), single) Dim offset2 As single = CType((textSize.Height * System.Math.Sqrt(2) / 4), single) 'Traverse all the pages in the document Dim page As PdfPageBase For Each page In pdf.Pages 'Set the page transparency page.Canvas.SetTransparency(0.8f) 'Translate the coordinate system by specified coordinates page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2) 'Rotate the coordinate system 45 degrees counterclockwise page.Canvas.RotateTransform(-45) 'Draw watermark text on the page page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0) Next 'Save the changes to another file pdf.SaveToFile("TextWatermark.pdf") End Sub End Class End Namespace
Aggiungi filigrane di testo multilinea al PDF
Ci sono momenti in cui potresti voler aggiungere più di una riga di filigrane di testo al tuo documento. Per ottenere l'effetto filigrana piastrellato, è possibile utilizzare la classe PdfTilingBrush, che produce un motivo piastrellato che viene ripetuto per riempire un'area grafica. Di seguito sono riportati i passaggi principali per aggiungere filigrane multilinea a un documento PDF.
- Creare un oggetto PdfDocument e caricare un documento PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
- Creare un metodo personalizzato InsertMultiLineTextWatermark(PdfPageBase page, String watermarkText, PdfTrueTypeFont font, int rowNum, int columnNum) per aggiungere filigrane di testo su più righe a una pagina PDF. I parametri rowNum e columnNum specificano il numero di riga e di colonna delle filigrane affiancate.
- Attraversa tutte le pagine del documento e chiama il metodo personalizzato InsertMultiLineTextWatermark() per applicare filigrane a ogni pagina.
- Salvare il documento in un altro file utilizzando il metodo PdfDocument.SaveToFile().
- C#
- VB.NET
using System; using Spire.Pdf; using Spire.Pdf.Graphics; using System.Drawing; namespace AddMultiLineTextWatermark { class Program { static void Main(string[] args) { //Create a PdfDocument instance PdfDocument pdf = new PdfDocument(); //Load a sample PDF document pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf"); //Create a PdfTrueTypeFont object PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 20f), true); //Traverse all the pages for (int i = 0; i < pdf.Pages.Count; i++) { //Call InsertMultiLineTextWatermark() method to add text watermarks to the specified page InsertMultiLineTextWatermark(pdf.Pages[i], "E-ICEBLUE CO LTD", font, 3, 3); } //Save the document to another file pdf.SaveToFile("MultiLineTextWatermark.pdf"); } //Create a custom method to insert multi-line text watermarks to a page static void InsertMultiLineTextWatermark(PdfPageBase page, String watermarkText, PdfTrueTypeFont font, int rowNum, int columnNum) { //Measure the text size SizeF textSize = font.MeasureString(watermarkText); //Calculate the values of two offset variables, which will be used to calculate the translation amount of coordinate system float offset1 = (float)(textSize.Width * System.Math.Sqrt(2) / 4); float offset2 = (float)(textSize.Height * System.Math.Sqrt(2) / 4); //Create a tile brush PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.ActualSize.Width / columnNum, page.ActualSize.Height / rowNum)); brush.Graphics.SetTransparency(0.3f); brush.Graphics.Save(); brush.Graphics.TranslateTransform(brush.Size.Width / 2 - offset1 - offset2, brush.Size.Height / 2 + offset1 - offset2); brush.Graphics.RotateTransform(-45); //Draw watermark text on the tile brush brush.Graphics.DrawString(watermarkText, font, PdfBrushes.Violet, 0, 0); brush.Graphics.Restore(); //Draw a rectangle (that covers the whole page) using the tile brush page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.ActualSize)); } } }
Imports System Imports Spire.Pdf Imports Spire.Pdf.Graphics Imports System.Drawing Namespace AddMultiLineTextWatermark Class Program Shared Sub Main(ByVal args() As String) 'Create a PdfDocument instance Dim pdf As PdfDocument = New PdfDocument() 'Load a sample PDF document pdf.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf") 'Create a PdfTrueTypeFont object Dim font As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("Arial",20f),True) 'Traverse all the pages Dim i As Integer For i = 0 To pdf.Pages.Count- 1 Step i + 1 'Call InsertMultiLineTextWatermark() method to add text watermarks to the specified page InsertMultiLineTextWatermark(pdf.Pages(i), "E-ICEBLUE CO LTD", font, 3, 3) Next 'Save the document to another file pdf.SaveToFile("MultiLineTextWatermark.pdf") End Sub 'Create a custom method to insert multi-line text watermarks to a page Shared Sub InsertMultiLineTextWatermark(ByVal page As PdfPageBase, ByVal watermarkText As String, ByVal font As PdfTrueTypeFont, ByVal rowNum As Integer, ByVal columnNum As Integer) 'Measure the text size Dim textSize As SizeF = font.MeasureString(watermarkText) 'Calculate the values of two offset variables, which will be used to calculate the translation amount of coordinate system Dim offset1 As single = CType((textSize.Width * System.Math.Sqrt(2) / 4), single) Dim offset2 As single = CType((textSize.Height * System.Math.Sqrt(2) / 4), single) 'Create a tile brush Dim brush As PdfTilingBrush = New PdfTilingBrush(New SizeF(page.ActualSize.Width / columnNum,page.ActualSize.Height / rowNum)) brush.Graphics.SetTransparency(0.3f) brush.Graphics.Save() brush.Graphics.TranslateTransform(brush.Size.Width / 2 - offset1 - offset2, brush.Size.Height / 2 + offset1 - offset2) brush.Graphics.RotateTransform(-45) 'Draw watermark text on the tile brush brush.Graphics.DrawString(watermarkText, font, PdfBrushes.Violet, 0, 0) brush.Graphics.Restore() 'Draw a rectangle (that covers the whole page) using the tile brush page.Canvas.DrawRectangle(brush, New RectangleF(New PointF(0, 0), page.ActualSize)) 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.