Dividi documenti Word C++

MS Word è un formato popolare per l’archiviazione e la condivisione di informazioni. Potrebbero esserci scenari in cui desideri dividere un documento di Word in più file. Ad esempio, un documento può contenere diverse sezioni che devono essere condivise con persone diverse o contenere alcune informazioni riservate che devono essere separate. In questi casi, la suddivisione del documento di Word si rivela utile. In questo articolo imparerai come dividere documenti MS Word usando C++.

API C++ per dividere i documenti di Word

Aspose.Words for C++ è una libreria C++ nativa che consente di generare, modificare e convertire documenti Microsoft Word. Inoltre, supporta anche la divisione di documenti Word in più file. Puoi installare l’API tramite NuGet o scaricarla direttamente dalla sezione Download.

PM> Install-Package Aspose.Words.Cpp

Dividi i documenti di Word per pagina usando C++

Di seguito sono riportati i passaggi per dividere i file di Word utilizzando C++.

  • Carica il documento di Word usando la classe Document.
  • Crea un’istanza della classe DocumentPageSplitter e inizializzala con l’oggetto Document creato nel passaggio precedente.
  • Scorri le pagine del Documento.
  • Estrarre ogni pagina con il metodo DocumentPageSplitter.GetDocumentOfPage(int32t PageIndex).
  • Salvare i documenti utilizzando il metodo Document->Save (System::String fileName).

Di seguito è riportato il codice di esempio per dividere un documento di Word per pagina.

// Esempio di documento Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Carica il documento di Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Crea e inizializza il divisore di pagina del documento
DocumentPageSplitter splitter = DocumentPageSplitter(document);

// Percorso del file di output
System::String outputPath = u"OutputDirectory\\";

// Salva ogni pagina come un documento separato
for (int page = 1; page <= document->get_PageCount(); page++)
{
    auto pageDoc = splitter.GetDocumentOfPage(page);
    pageDoc->Save(outputPath + u"SplitDocumentPageByPageOut_" + System::Convert::ToString(page) + u".docx");
}

Usa Intervallo di pagine per dividere un documento di Word

Invece di separare ogni singola pagina, puoi anche dividere il documento di Word fornendo un intervallo di pagine. Di seguito sono riportati i passaggi per dividere un documento di Word utilizzando l’intervallo di pagine.

  • Innanzitutto, carica il documento di Word utilizzando la classe Document.
  • Crea un’istanza della classe DocumentPageSplitter e inizializzala con l’oggetto Document del passaggio precedente.
  • Recupera le pagine nell’intervallo richiesto usando il metodo DocumentPageSplitter.GetDocumentOfPageRange(int32t pageIndex, int32t pageIndex).
  • Infine, salva il documento di Word usando il metodo Document->Save (System::String fileName).

Di seguito è riportato il codice di esempio per dividere un documento di Word utilizzando l’intervallo di pagine.

// Esempio di documento Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Carica il documento di Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Crea e inizializza il divisore di pagina del documento
DocumentPageSplitter splitter = DocumentPageSplitter(document);

// Ottieni l'intervallo di pagine
auto pageDoc = splitter.GetDocumentOfPageRange(2, 3);

// Percorso del file di output
System::String outputPath = u"OutputDirectory\\";

// Salva come file DOCX
pageDoc->Save(outputPath + u"SplitDocumentByPageRangeOut.docx");

Dividi il documento di Word per sezioni usando C++

I file di Word possono contenere una o più sezioni che potrebbero avere una formattazione diversa e possono essere costituite da un numero qualsiasi di pagine. Per aggiungere una nuova sezione nel file di Word, utilizzare l’opzione Layout>Interruzioni>Interruzioni di sezione. Di seguito sono riportati i passaggi per dividere i file di Word per sezioni usando Aspose.Words per l’API C++.

Di seguito è riportato il codice di esempio per dividere i documenti di Word per sezioni.

// Esempio di documento Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Carica il documento di Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Percorso del file di output
System::String outputPath = u"OutputDirectory\\";

for (int i = 0; i < document->get_Sections()->get_Count(); i++)
{
    // Dividi un documento in parti più piccole, in questo caso divise per sezione
    auto section = document->get_Sections()->idx_get(i)->Clone();

    // Crea un nuovo documento
    auto newDoc = System::MakeObject<Aspose::Words::Document>();
    newDoc->get_Sections()->Clear();

    //Aggiungi una nuova sezione al documento appena creato
    auto newSection = System::StaticCast<Aspose::Words::Section>(newDoc->ImportNode(section, true));
    newDoc->get_Sections()->Add(newSection);

    // Salva ogni sezione come documento separato
    newDoc->Save(outputPath + u"SplitDocumentBySectionsOut_" + System::Convert::ToString(i) + u".docx");
}

Ottieni una licenza gratuita

Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo, hai imparato come dividere i documenti di Word in più file usando C++. Hai imparato a usare Aspose.Words per l’API C++ per dividere i documenti di Word per pagina, intervallo di pagine e sezioni. Puoi esplorare l’API in dettaglio utilizzando la documentazione ufficiale. In caso di domande, non esitare a contattarci sul forum.

Guarda anche