Hoy, destacaré las características principales introducidas en la versión Aspose.Words for C++ 19.10:

Guardar documento de Word como TIFF de varias páginas

Una de las cosas útiles que puede necesitar hacer con su documento de Word (como DOCX, DOC, RTF y muchos más) es una conversión a archivo(s) de imagen. Por ejemplo, si tiene que presentar su documento de Word en un formato legible e imprimible pero no editable (por ejemplo, para su publicación en la Web). Uno de los enfoques simples que podría usar es una conversión a un archivo TIFF de varias páginas. Consulte el siguiente artículo para obtener información sobre cómo convertir un documento de Word a formato TIFF mediante Aspose.Words para C++: Convertir documento de Word en imagen TIFF de varias páginas

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-words/Aspose.Words-for-.NET
// Guarde el documento como TIFF de varias páginas.
doc.Save(dataDir + "TestFile Multipage TIFF_out.tiff");

Convertir una imagen a PDF usando C++

Ahora es posible crear un documento PDF a partir de una imagen utilizando Aspose.Words para la API de C++. El ejemplo de código mencionado en el siguiente artículo muestra lo fácil que es hacerlo con Aspose.Words para C++. El código permite convertir imágenes de un solo cuadro, como JPEG, PNG, BMP, EMF o WMF, así como imágenes TIFF de varios cuadros y GIF a PDF. Convertir una imagen a PDF

Umbral de control para binarización TIFF usando C++

El proceso de reducir la información contenida dentro de la imagen en escala de grises de 256 tonos de gris a 2 en blanco y negro y convertirla a la imagen binaria es binarización. Cuando un documento se convierte al formato de archivo TIFF, puede controlar el umbral para la binarización TIFF mediante la propiedad ImageSaveOptions.ThresholdForFloydSteinbergDithering. El valor predeterminado de esta propiedad es 128. Cuanto mayor sea el valor, más oscura será la imagen. El siguiente ejemplo de código muestra cómo usar esta propiedad para Controlar el umbral para la binarización TIFF.

System::SharedPtr<ImageSaveOptions> options = System::MakeObject<ImageSaveOptions>(SaveFormat::Tiff);
options->set_TiffCompression(TiffCompression::Ccitt3);
options->set_ImageColorMode(ImageColorMode::Grayscale);
options->set_TiffBinarizationMethod(ImageBinarizationMethod::FloydSteinbergDithering);
options->set_ThresholdForFloydSteinbergDithering(254);

System::String outputPath = outputDataDir + u"ImageColorFilters.ExposeThresholdControlForTiffBinarization.tiff";
doc->Save(outputPath, options);

Guardar imagen a un bit por píxel usando C++

El siguiente ejemplo de código muestra cómo guardar la imagen en un bit por píxel configurando PixelFormat en Format1bppIndexed.

System::SharedPtr<ImageSaveOptions> opt = System::MakeObject<ImageSaveOptions>(SaveFormat::Png);
opt->set_PageIndex(1);
opt->set_ImageColorMode(ImageColorMode::BlackAndWhite);
opt->set_PixelFormat(ImagePixelFormat::Format1bppIndexed);

System::String outputPath = outputDataDir + u"ImageColorFilters.SaveImageToOnebitPerPixel.png";
doc->Save(outputPath, opt);

Cifrar archivos DOC o DOT con contraseña usando C++

La clase DocSaveOptions se utiliza para especificar opciones adicionales al guardar un documento en formato DOC o DOT. Con esta clase, puede establecer la contraseña en un documento cifrado e ignorar los datos de RoutingSlip mientras guarda el documento. El ejemplo de código que se muestra a continuación muestra cómo establecer la contraseña para cifrar el documento mediante el método de cifrado RC4.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc");
System::SharedPtr<DocSaveOptions> docSaveOptions = System::MakeObject<DocSaveOptions>();
docSaveOptions->set_Password(u"password");
System::String outputPath = outputDataDir + u"WorkingWithDoc.EncryptDocumentWithPassword.doc";
doc->Save(outputPath, docSaveOptions);

Cifrar archivos DOCX con contraseña usando C++

La clase OoXMLSaveOptions brinda la oportunidad de guardar cualquier documento cifrado con la contraseña. Usando esta clase, puede establecer la contraseña usando la propiedad OoxmlSaveOptions.Password mientras guarda el documento. El siguiente ejemplo de código muestra cómo establecer la contraseña y guardar el documento en formato DOCX.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc");
System::SharedPtr<OoxmlSaveOptions> ooxmlSaveOptions = System::MakeObject<OoxmlSaveOptions>();
ooxmlSaveOptions->set_Password(u"password");
System::String outputPath = outputDataDir + u"WorkingWithOoxml.EncryptDocxWithPassword.docx";
doc->Save(outputPath, ooxmlSaveOptions);

Extraer contenido usando DocumentVisitor

Ahora puede usar la clase DocumentVisitor para implementar este escenario de uso. Esta clase corresponde al conocido patrón de diseño Visitor. Con DocumentVisitor, puede definir y ejecutar operaciones personalizadas que requieren enumeración en el árbol del documento. Para obtener más detalles, consulte: Cómo extraer contenido usando DocumentVisitor

Obtener espaciado de línea de fuente

El interlineado de una fuente es la distancia vertical entre las líneas de base de dos líneas de texto consecutivas. Por lo tanto, el interlineado incluye el espacio en blanco entre líneas junto con la altura del propio carácter. La propiedad LineSpacing se introdujo en la clase Font para Obtener el valor del espaciado entre líneas de la fuente como se muestra en el siguiente ejemplo:

// Inicializar documento.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
builder->get_Font()->set_Name(u"Calibri");
builder->Writeln(u"qText");

// Obtenga el espacio entre líneas.
System::SharedPtr<Font> font = builder->get_Document()->get_FirstSection()->get_Body()->get_FirstParagraph()->get_Runs()->idx_get(0)->get_Font();
//Console.WriteLine($"lineSpacing = {font.LineSpacing}");
std::cout << "lineSpacing = " << font->get_LineSpacing() << std::endl;

Ver también Enlaces útiles

Los recursos que puede necesitar para realizar sus tareas:

Manteniendo la tradición de Aspose, le invitamos a dar forma a los próximos lanzamientos de Aspose.Words for C++ API publicando sus sugerencias e inquietudes en el foro de soporte de Aspose.Words for C++.