Mover páginas de PDF programáticamente C++

Mover una página de un documento PDF a otro

Mover páginas de PDF en un documento es una tarea muy interesante y popular. Este tema explica cómo mover una página de un documento PDF al final de otro documento usando C++. Para mover una página debemos:

  1. Crear un objeto de la clase Document con el archivo PDF de origen.
  2. Obtener la página de la colección PageCollection.
  3. Agregar la página al documento de destino.
  4. Guardar el PDF de salida usando el método Save.
  5. Eliminar página en el documento fuente.
  6. Guarde el PDF fuente usando el método Save.

El siguiente fragmento de código te muestra cómo mover una página.

void MovePage()
{
    // Abrir documento
    String _dataDir("C:\\Samples\\");
    String srcFileName("<enter file name>");
    String dstFileName("<enter file name>");

    auto srcDocument = MakeObject<Document>(_dataDir + srcFileName);
    auto dstDocument = MakeObject<Document>();

    auto page = srcDocument->get_Pages()->idx_get(2);
    dstDocument->get_Pages()->Add(page);
    // Guardar archivo de salida
    dstDocument->Save(srcFileName);
    srcDocument->get_Pages()->Delete(2);
    srcDocument->Save(dstFileName);
}

Mover un conjunto de páginas de un documento PDF a otro

  1. Cree un objeto de la clase Document con el archivo PDF fuente.
  2. Defina un arreglo con los números de página a mover.
  3. Recorrer bucle a través de un array:
  4. Obtener Página de la colección de PageCollection.
  5. Agregar página al documento de destino.
  6. Guardar el PDF de salida usando el método Guardar.
  7. Eliminar página en el documento fuente.
  8. Guardar el PDF de origen usando el método Guardar.

El siguiente fragmento de código muestra cómo insertar una página vacía al final de un archivo PDF.

void MoveBunchPages()
{
    // Abrir documento
    String _dataDir("C:\\Samples\\");
    String srcFileName("<enter file name>");
    String dstFileName("<enter file name>");

    auto srcDocument = MakeObject<Document>(_dataDir + srcFileName);
    auto dstDocument = MakeObject<Document>();


    auto pages = MakeArray<int>({ 1,3 });

    for (auto pageIndex : pages)
    {
        auto page = srcDocument->get_Pages()->idx_get(pageIndex);
        dstDocument->get_Pages()->Add(page);
    }
    // Guardar archivos de salida
    dstDocument->Save(srcFileName);
    srcDocument->get_Pages()->Delete();
    srcDocument->Save(dstFileName);
}

Mover una página a una nueva ubicación en el documento PDF actual

  1. Cree un objeto de clase Document con el archivo PDF de origen.
  2. Obtenga la página de la colección PageCollection.
  3. Añada la página a la nueva ubicación (por ejemplo, al final).
  4. Elimine la página en la ubicación anterior.
  5. Guarde el archivo PDF de salida utilizando el método Save.
void MovePagesInOnePDF()
{
    // Abrir documento
    String _dataDir("C:\\Samples\\");
    String srcFileName("<enter file name>");
    String dstFileName("<enter file name>");

    auto srcDocument = MakeObject<Document>(_dataDir + srcFileName);
    auto dstDocument = MakeObject<Document>();

    auto page = srcDocument->get_Pages()->idx_get(2);
    srcDocument->get_Pages()->Add(page);
    srcDocument->get_Pages()->Delete(2);

    // Guardar archivo de salida
    srcDocument->Save(dstFileName);
}