Añadir Sellos de Texto en Archivo PDF
Añadir Sello de Texto con C++
Puedes usar la clase TextStamp para añadir un sello de texto en un archivo PDF. La clase TextStamp proporciona las propiedades necesarias para crear un sello basado en texto como el tamaño de fuente, estilo de fuente, y color de fuente, etc. Para añadir un sello de texto, necesitas crear un objeto Document y un objeto TextStamp usando las propiedades requeridas. Después de eso, puedes llamar al método AddStamp de la página para añadir el sello en el PDF. El siguiente fragmento de código te muestra cómo añadir un sello de texto en el archivo PDF.
void AddTextStampToPDFFile() {
String _dataDir("C:\\Samples\\");
// String para el nombre del archivo de entrada
String inputFileName("AddTextStamp.pdf");
String outputFileName("AddTextStamp_out.pdf");
// Abrir documento
auto document = MakeObject<Document>(_dataDir + inputFileName);
// Crear sello de texto
auto textStamp =MakeObject<TextStamp>(u"Sample Stamp");
// Establecer si el sello es de fondo
textStamp->set_Background(true);
// Establecer origen
textStamp->set_XIndent(100);
textStamp->set_YIndent(100);
// Rotar sello
textStamp->set_Rotate(Rotation::on90);
// Establecer propiedades de texto
textStamp->get_TextState()->set_Font(FontRepository::FindFont(u"Arial"));
textStamp->get_TextState()->set_FontSize(14.0F);
textStamp->get_TextState()->set_FontStyle(FontStyles::Bold);
textStamp->get_TextState()->set_FontStyle(FontStyles::Italic);
textStamp->get_TextState()->set_ForegroundColor(Color::get_Green());
// Añadir sello a una página en particular
document->get_Pages()->idx_get(1)->AddStamp(textStamp);
// Guardar documento de salida
document->Save(_dataDir + outputFileName);
}
Definir la alineación para el objeto TextStamp
Agregar marcas de agua a documentos PDF es una de las características frecuentemente demandadas y Aspose.PDF para C++ es completamente capaz de agregar marcas de agua de imagen así como de texto. Tenemos una clase llamada TextStamp que proporciona la función de agregar sellos de texto sobre el archivo PDF. Recientemente ha habido un requisito para apoyar la función de especificar la alineación del texto al usar el objeto TextStamp. Así que para cumplir con este requisito, hemos introducido la propiedad TextAlignment en la clase TextStamp. Usando esta propiedad, podemos especificar la alineación horizontal del texto.
Los siguientes fragmentos de código muestran un ejemplo de cómo cargar un documento PDF existente y agregar un TextStamp sobre él.
void DefineAlignmentTextStamp() {
String _dataDir("C:\\Samples\\");
// String para el nombre del archivo de entrada
String inputFileName("AddTextStamp.pdf");
String outputFileName("AddTextStamp_out.pdf");
// Abrir documento
auto document = MakeObject<Document>(_dataDir + inputFileName);
// instanciar objeto FormattedText con cadena de ejemplo
auto text = MakeObject<Aspose::Pdf::Facades::FormattedText>("This");
// agregar nueva línea de texto a FormattedText
text->AddNewLineText(u"is sample");
text->AddNewLineText(u"Center Aligned");
text->AddNewLineText(u"TextStamp");
text->AddNewLineText(u"Object");
// crear objeto TextStamp usando FormattedText
auto stamp = MakeObject<TextStamp>(text);
// especificar la alineación horizontal del sello de texto como centrada
stamp->set_HorizontalAlignment(HorizontalAlignment::Center);
// especificar la alineación vertical del sello de texto como centrada
stamp->set_VerticalAlignment(VerticalAlignment::Center);
// especificar la alineación horizontal del texto del TextStamp como centrada
stamp->set_TextAlignment(HorizontalAlignment::Center);
// establecer el margen superior para el objeto del sello
stamp->set_TopMargin(20);
// agregar sello a todas las páginas del archivo PDF
document->get_Pages()->idx_get(1)->AddStamp(stamp);
// guardar documento de salida
document->Save(_dataDir + outputFileName);
}
Rellenar Texto de Trazado como Sello en Archivo PDF
Hemos implementado la configuración del modo de renderización para escenarios de adición y edición de texto. Para renderizar texto de trazado, cree un objeto TextState y establezca RenderingMode en TextRenderingMode.StrokeText y también seleccione un color para la propiedad StrokingColor. Luego, vincule TextState al sello usando el método BindTextState().
El siguiente fragmento de código demuestra cómo añadir Texto de Relleno de Trazado:
void FillStrokeTextAsStampInPDFFile() {
String _dataDir("C:\\Samples\\");
// String para el nombre del archivo de entrada
String inputFileName("AddTextStamp.pdf");
String outputFileName("AddTextStamp_out.pdf");
// Crear objeto TextState para transferir propiedades avanzadas
auto ts = MakeObject<TextState>();
// Establecer color para el trazado
ts->set_StrokingColor(Color::get_Gray());
// Establecer modo de renderización de texto
ts->set_RenderingMode(TextRenderingMode::StrokeText);
// Cargar un documento PDF de entrada
auto fileStamp = MakeObject<Aspose::Pdf::Facades::PdfFileStamp>(MakeObject<Document>(_dataDir + inputFileName));
auto stamp = MakeObject<Aspose::Pdf::Facades::Stamp>();
auto formattedText = MakeObject<Aspose::Pdf::Facades::FormattedText>(u"PAID IN FULL", Color::get_Gray(), Aspose::Pdf::Facades::EncodingType::Winansi, true, 78);
stamp->BindLogo(formattedText);
// Vincular TextState
stamp->BindTextState(ts);
// Establecer origen X,Y
stamp->SetOrigin(100, 100);
stamp->set_Opacity(5);
stamp->set_BlendingSpace(Aspose::Pdf::Facades::BlendingColorSpace::DeviceRGB);
stamp->set_Rotation(45.0F);
stamp->set_IsBackground(false);
// Añadir Sello
fileStamp->AddStamp(stamp);
fileStamp->Save(_dataDir + outputFileName);
fileStamp->Close();
}