Una marca de agua en un documento identifica el estado del documento con textos como confidencial, borrador, etc., y dificulta la copia del documento original. Las marcas de agua pueden estar basadas en imágenes o texto y se usan con frecuencia en documentos PDF. Es posible que deba agregar marcas de agua a los documentos PDF dentro de sus aplicaciones C++. Para eso, este artículo le enseñará cómo agregar y eliminar marcas de agua de texto e imágenes de documentos PDF usando C++.

API de C++ para insertar y eliminar marcas de agua de texto/imagen {#C++-API-for-Inserting-and-Deleting-Text-Image-Watermarks}

Aspose.PDF for C++ es una biblioteca de C++ que le permite crear, leer y actualizar documentos PDF. Además, la API admite la inserción y eliminación de marcas de agua de imagen/texto en documentos PDF. Puede instalar la API a través de NuGet o descargarla directamente desde la sección descargas.

PM> Install-Package Aspose.PDF.Cpp

Insertar marca de agua de texto en un archivo PDF usando C++

Con Aspose.PDF for C++, puede controlar el estilo de fuente, el texto, el color, el ángulo, la opacidad, etc. de la marca de agua del texto. Los siguientes son los pasos para agregar una marca de agua de texto en un archivo PDF.

El siguiente código de ejemplo muestra cómo agregar una marca de agua de texto en un archivo PDF usando C++.

// Abra el documento PDF de origen
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Crear una instancia de la clase TextStamp
System::SharedPtr<TextStamp> textStamp = MakeObject<TextStamp>(u"CONFIDENTIAL");

// Establecer la posición de la marca de agua
textStamp->set_XIndent(70);
textStamp->set_YIndent(300);

// Establecer propiedades de texto
textStamp->get_TextState()->set_Font(FontRepository::FindFont(u"Arial"));
textStamp->get_TextState()->set_FontSize(72.0F);
textStamp->get_TextState()->set_ForegroundColor(Aspose::Pdf::Color::get_Red());
textStamp->set_Opacity(0.4);
textStamp->set_RotateAngle(45);
textStamp->setStampId(123456);

// Agregar marca de agua a la página PDF
pdfDocument->get_Pages()->idx_get(1)->AddStamp(textStamp);

// Guarde el archivo PDF
pdfDocument->Save(u"OutputDirectory\\Text-Watermark-Out.pdf", SaveFormat::Pdf);
Imagen del archivo PDF de salida generado por el código de muestra

Imagen del archivo PDF de salida generado por el código de muestra

Insertar marca de agua de imagen en un archivo PDF usando C++

Las marcas de agua de imagen generalmente se usan para mostrar la propiedad del documento mediante el uso del logotipo o cualquier otra imagen identificable. Puede agregar una marca de agua de imagen a los archivos PDF siguiendo los pasos que se detallan a continuación.

El siguiente código de ejemplo demuestra cómo agregar una marca de agua de imagen en un archivo PDF usando C++.

// Abra el documento PDF de origen
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Crear una instancia de la clase ImageStamp
System::SharedPtr<ImageStamp> imageStamp = MakeObject<ImageStamp>(u"SourceDirectory\\aspose.png");

// Establecer la posición de la marca de agua
imageStamp->set_XIndent(150);
imageStamp->set_YIndent(350);

// Establecer otras propiedades
imageStamp->set_Height(100);
imageStamp->set_Width(300);
imageStamp->set_RotateAngle(45);
imageStamp->set_Opacity(0.4);
imageStamp->setStampId(12345678);

// Agregar marca de agua a la página PDF
pdfDocument->get_Pages()->idx_get(1)->AddStamp(imageStamp);

// Guarde el archivo PDF
pdfDocument->Save(u"OutputDirectory\\Image-Watermark-Out.pdf", SaveFormat::Pdf);
Imagen del archivo PDF de salida generado por el código de muestra

Imagen del archivo PDF de salida generado por el código de muestra

Eliminar marca de agua de texto o imagen de un archivo PDF usando C++

Puede haber escenarios en los que necesite eliminar marcas de agua de un documento PDF. En los ejemplos anteriores, definimos identificadores para marcas de agua de texto e imagen. Usaremos esas identificaciones para eliminar las marcas de agua de los documentos PDF. Los siguientes son los pasos para eliminar las marcas de agua de los archivos PDF.

El siguiente código de ejemplo muestra cómo eliminar marcas de agua de texto e imágenes de archivos PDF usando C++.

// Crear una instancia de la clase PdfContentEditor
System::SharedPtr<PdfContentEditor> contentEditor = MakeObject<PdfContentEditor>();

// Abra el archivo PDF que contiene la marca de agua.
contentEditor->BindPdf(u"SourceDirectory\\SampleImageWatermark.pdf");

// Eliminar marca de agua por id
contentEditor->DeleteStampById(12345678);

// Guarde el archivo PDF
pdfDocument->Save(u"OutputDirectory\\Remove-Watermark-Out.pdf", SaveFormat::Pdf);

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a trabajar con marcas de agua en archivos PDF utilizando C++. Específicamente, aprendió cómo agregar y eliminar marcas de agua de imágenes y texto de documentos PDF utilizando Aspose.PDF for C++. La API proporciona muchas funciones adicionales para automatizar sus tareas relacionadas con PDF. Puede explorar la API en detalle visitando la documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.

Ver también