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
- Insertar marca de agua de texto en un archivo PDF usando C++
- Insertar marca de agua de imagen en un archivo PDF usando C++
- Eliminar marca de agua de texto o imagen de un archivo 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.
- Cargue el archivo PDF utilizando la clase Document.
- Cree una instancia de la clase TextStamp con el texto de la marca de agua.
- Establezca la posición y otras propiedades de la marca de agua.
- Agregue la marca de agua a la página usando Document->getPages()->idxget(1)->AddStamp(System::SharedPtr sello) método.
- Guarde el archivo PDF usando el método Document->Save(System::String outputFileName, SaveFormat format).
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
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.
- Cargue el archivo PDF utilizando la clase Document.
- Cree una instancia de la clase ImageStamp con la imagen de la marca de agua.
- Establezca la posición y otras propiedades de la marca de agua.
- Agregue la marca de agua a la página usando Document->getPages()->idxget(1)->AddStamp(System::SharedPtr sello) método.
- Guarde el archivo PDF usando el método Document->Save(System::String outputFileName, SaveFormat format).
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
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.
- Cree una instancia de la clase PdfContentEditor.
- Cargue el documento PDF usando el método PdfContentEditor->BindPdf(System::String inputFile).
- Elimine la marca de agua con el método PdfContentEditor->DeleteStampById(int32t stampId).
- Guarde el archivo PDF utilizando el método Document->Save(System::String outputFileName, SaveFormat format).
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.