Oggi evidenzierò le principali funzionalità introdotte nella versione Aspose.Words for C++ 19.10:

Salva documento Word come TIFF MutiPage

Una delle cose utili che potresti dover fare con il tuo documento Word (come DOCX, DOC, RTF e molti altri) è una conversione in file immagine. Ad esempio se devi presentare il tuo documento Word in un formato leggibile e stampabile ma non modificabile (es. per la pubblicazione sul Web). Uno dei semplici approcci che potresti utilizzare è una conversione in un file TIFF multipagina. Fare riferimento al seguente articolo per informazioni su come convertire un documento Word in formato TIFF utilizzando Aspose.Words per C++: Converti documento Word in immagine TIFF multipagina

// Per esempi completi e file di dati, visitare https://github.com/aspose-words/Aspose.Words-for-.NET
// Salva il documento come TIFF multipagina.
doc.Save(dataDir + "TestFile Multipage TIFF_out.tiff");

Converti un’immagine in PDF usando C++

È ora possibile creare un documento PDF da un’immagine utilizzando Aspose.Words per l’API C++. L’esempio di codice menzionato nell’articolo seguente mostra quanto sia facile eseguire Aspose.Words per C++. Il codice consente di convertire immagini a fotogramma singolo, come JPEG, PNG, BMP, EMF o WMF, nonché immagini TIFF multi fotogramma e GIF in PDF. Convertire un’immagine in PDF

Soglia di controllo per la binarizzazione TIFF tramite C++

Il processo di riduzione delle informazioni contenute nell’immagine in scala di grigi da 256 sfumature di grigio a 2 in bianco e nero e di conversione nell’immagine binaria è la binarizzazione. Quando un documento viene convertito in formato file TIFF, è possibile controllare la soglia per la binarizzazione TIFF utilizzando la proprietà ImageSaveOptions.ThresholdForFloydSteinbergDithering. Il valore predefinito di questa proprietà è 128. Più alto è il valore, più scura sarà l’immagine. Nell’esempio di codice seguente viene illustrato come utilizzare questa proprietà per Control Threshold for TIFF Binaization.

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);

Salva l’immagine a un bit per pixel usando C++

Nell’esempio di codice seguente viene illustrato come salvare l’immagine a un bit per pixel impostando PixelFormat su 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);

Crittografa file DOC o DOT con password utilizzando C++

La classe DocSaveOptions viene utilizzata per specificare opzioni aggiuntive durante il salvataggio di un documento nel formato DOC o DOT. Utilizzando questa classe, puoi impostare la password su un documento crittografato e ignorare i dati RoutingSlip durante il salvataggio del documento. L’esempio di codice riportato di seguito mostra come impostare la password per crittografare il documento utilizzando il metodo di crittografia 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);

Crittografa i file DOCX con password usando C++

La classe OoXMLSaveOptions offre l’opportunità di salvare qualsiasi documento crittografato con la password. Usando questa classe, puoi impostare la password usando la proprietà OoxmlSaveOptions.Password durante il salvataggio del documento. L’esempio di codice seguente mostra come impostare la password e salvare il documento in 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);

Estrai contenuto utilizzando DocumentVisitor

È ora possibile utilizzare la classe DocumentVisitor per implementare questo scenario di utilizzo. Questa classe corrisponde al noto modello di design dei visitatori. Con DocumentVisitor è possibile definire ed eseguire operazioni personalizzate che richiedono l’enumerazione nell’albero del documento. Per maggiori dettagli, si prega di controllare: Come estrarre contenuto utilizzando DocumentVisitor

Ottieni l’interlinea dei caratteri

L’interlinea di un carattere è la distanza verticale tra le linee di base di due righe di testo consecutive. Pertanto, l’interlinea include lo spazio vuoto tra le righe insieme all’altezza del carattere stesso. La proprietà LineSpacing è stata introdotta nella classe Font per ottenere il valore dell’interlinea del carattere come mostrato nell’esempio riportato di seguito:

// Inizializza 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");

// Ottieni l'interlinea.
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;

Le risorse di cui potresti aver bisogno per svolgere i tuoi compiti:

Mantenendo la tradizione di Aspose, sei libero di dare forma alle prossime versioni di Aspose.Words per l’API C++ pubblicando i tuoi suggerimenti e dubbi nel Forum di supporto di Aspose.Words per C++.