Oggi stiamo per imparare alcuni modi per rimuovere a livello di codice o pulire completamente i metadati di documenti e immagini usando C#. In un post precedente, abbiamo discusso della rimozione delle proprietà selettive e di tutte le proprietà dei metadati disponibili da documenti e immagini utilizzando Java. A volte è importante nascondere le informazioni personali al destinatario, che sono allegate al documento. Di seguito sono riportati gli argomenti che ti aiuteranno a pulire i tuoi file dai metadati usando C#.

API di rimozione dei metadati .NET

Per ottenere quanto pianificato, utilizzerò l’API GroupDocs.Metadata for .NET che consente agli sviluppatori .NET di aggiungere, modificare, estrarre, rimuovere o completamente metadati da molti formati supportati di documenti, immagini e altri file. L’API supporta standard di metadati come EXIF, XMP, IPTC, tag ID3, ecc. Puoi scaricare DLL o programma di installazione MSI o installarlo tramite NuGet.

Install-Package GroupDocs.Metadata

Rimuovere i metadati dai documenti usando C#

Per rimuovere tutte le proprietà dei metadati senza applicare alcun filtro specifico, utilizza il metodo Sanitize. Di seguito sono riportati i passaggi per pulire i metadati da documenti come DOCX, PDF, XLSX, ecc. utilizzando GroupDocs.Metadata per .NET.

  • Inizia creando l’oggetto classe Metadata e passa il percorso del documento di destinazione come parametro.
  • Usa il metodo Sanitize per cancellare tutti i metadati disponibili. Restituisce il numero delle proprietà dei metadati rimossi.
  • Chiama il metodo Salva per salvare il file di output con i metadati rimossi.

L’esempio di codice C# seguente mostra come rimuovere e cancellare i metadati da un documento PDF.

/*
* Pulisci tutte le proprietà dei metadati rilevati da Word, Excel, 
* PowerPoint, PDF e altri documenti che utilizzano C#
*/
using (Metadata metadata = new Metadata("filePath/document.pdf"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.pdf");
}

Rimuovere i metadati dalle immagini usando C#

Sia che tu voglia rimuovere i metadati dai tuoi documenti o dai tuoi file di immagine, il processo rimarrà lo stesso. Solo il documento di origine verrà modificato di conseguenza.

  • Crea l’oggetto della classe Metadata e passa il percorso del documento come parametro.
  • Chiama il metodo Sanitize per rimuovere tutte le proprietà dei metadati disponibili.
  • Salva il file di output usando il metodo Salva.

L’esempio di codice C# seguente mostra come rimuovere i metadati da un’immagine JPG.

/*
* Pulisci o rimuovi tutte le proprietà dei metadati rilevati da PNG, JPG/JPEG,
* WebP, BMP, GIF, TIFF e altre immagini che utilizzano C#
*/
using (Metadata metadata = new Metadata("filePath/document.jpg"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.jpg");
}

Rimuovere i metadati selettivi da documenti e immagini usando C#

Se non è necessario rimuovere tutti i metadati disponibili dai file, vogliamo solo rimuovere solo le proprietà selettive dei metadati. I passaggi seguenti consentono di individuare e rimuovere le proprietà dei metadati di destinazione utilizzando il nome specifico della proprietà.

  • Crea un oggetto della classe Metadata per caricare il documento di origine o il file immagine.
  • Crea specifiche personalizzate per trovare le proprietà dei metadati.
  • Chiama il metodo RemoveProperties con le specifiche personalizzate create.
  • Salva il file di output utilizzando il metodo Salva.
// Rimuovere le proprietà dei metadati da documenti e immagini che soddisfano il filtro personalizzato utilizzando C#
using (Metadata metadata = new Metadata("filePath/document.docx"))
{
	// Rimuovi tutte le proprietà che:
	// contiene il nome dell'autore del documento OR
	// si riferisce all'ultimo editor OR 
	// il valore della proprietà è una stringa AND uguale alla stringa data "GroupDocs"
	var affected = metadata.RemoveProperties(
		p => p.Tags.Contains(Tags.Person.Creator) ||
			 p.Tags.Contains(Tags.Person.Editor) ||
			 p.Value.Type == MetadataPropertyType.String && p.Value.ToString().Contains("GroupDocs"));
	Console.WriteLine("Properties removed: {0}", affected);

	metadata.Save("outputPath/document.docx");
}

Conclusione

Abbiamo imparato i modi per rimuovere i metadati da documenti e immagini usando C#. Dopo aver esaminato questo articolo, ti sentiresti a tuo agio nel creare la tua applicazione per la pulizia dei metadati utilizzando .NET. Può supportare la rimozione dei metadati da formati di documenti MS Word, fogli di calcolo, presentazioni, file PDF, immagini, e-mail, eBook, disegni, file zip e molti altri formati di file supportati dall’API.

Puoi esplorare ulteriormente l’API di manipolazione dei metadati .NET dalla documentazione.

Guarda anche