Перемещение страниц PDF программно на C++
Contents
[
Hide
]
Перемещение страницы из одного PDF документа в другой
Перемещение страниц PDF в документе — это очень интересная и популярная задача. В этой теме объясняется, как переместить страницу из одного PDF документа в конец другого документа с использованием C++. Чтобы переместить страницу, мы должны:
- Создайте объект класса Document с исходным PDF файлом.
- Получите страницу из коллекции PageCollection.
- Добавьте страницу в целевой документ.
- Сохраните выходной PDF, используя метод Save.
- Delete страницу в исходном документе.
- Сохраните исходный PDF, используя метод Save.
Следующий фрагмент кода показывает, как переместить одну страницу.
void MovePage()
{
// Открыть документ
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);
// Сохранить выходной файл
dstDocument->Save(srcFileName);
srcDocument->get_Pages()->Delete(2);
srcDocument->Save(dstFileName);
}
Перемещение нескольких страниц из одного PDF документа в другой
- Создайте объект класса Document с исходным PDF файлом.
- Определите массив с номерами страниц для перемещения.
- Запустите цикл по массиву:
- Получите страницу из коллекции PageCollection.
- Добавьте страницу в целевой документ.
- Сохраните выходной PDF, используя метод Save.
- Удалите страницу в исходном документе.
- Сохраните исходный PDF, используя метод Save.
Следующий фрагмент кода показывает, как вставить пустую страницу в конец PDF файла.
void MoveBunchPages()
{
// Открыть документ
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);
}
// Сохранить выходные файлы
dstDocument->Save(srcFileName);
srcDocument->get_Pages()->Delete();
srcDocument->Save(dstFileName);
}
Перемещение страницы в новое место в текущем PDF документе
- Создайте объект класса Document с исходным PDF файлом.
- Получите страницу из коллекции PageCollection.
- Добавьте страницу на новое место (например, в конец).
- Удалите страницу в предыдущем месте.
- Сохраните выходной PDF, используя метод Save.
void MovePagesInOnePDF()
{
// Открыть документ
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);
// Сохранить выходной файл
srcDocument->Save(dstFileName);
}