ABCPdf изменить ориентацию конкретной страницы

Код ниже создает новый PDF с альбомной ориентацией. Используется компонент ABCPdf.

static void Main(string[] args)
{
    var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "da.pdf");

    var theDoc = new Doc();
    //theDoc.Read(filePath);

    // apply a rotation transform
    theDoc.MediaBox.String = "Legal";
    double w = theDoc.MediaBox.Width;
    double h = theDoc.MediaBox.Height;
    double l = theDoc.MediaBox.Left;
    double b = theDoc.MediaBox.Bottom;
    theDoc.Transform.Rotate(90, l, b);
    theDoc.Transform.Translate(w, 0);

    // rotate our rectangle
    theDoc.Rect.Width = h;
    theDoc.Rect.Height = w;

    // add some text
    theDoc.Rect.Inset(50, 50);
    theDoc.FontSize = 96;
    theDoc.AddText("Landscape Orientation");
    theDoc.AddPage();
    theDoc.PageNumber = theDoc.PageCount;
    theDoc.AddText("Page 2");

    // adjust the default rotation and save
    int theID = theDoc.GetInfoInt(theDoc.Root, "Pages");
    theDoc.SetInfo(theID, "/Rotate", "90");
    theDoc.Save(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "out.pdf"));
    theDoc.Clear();
}

Вместо того, чтобы создавать новый PDF-файл, я хотел бы открыть существующий PDF-файл и изменить ориентацию конкретной страницы на альбомную с помощью ABCPdf. как 1-я страница будет в портрете, а 2-я будет в альбомной

Спасибо

1 ответ

Вы можете сделать это или использовать метод "AddImageDoc", чтобы вставить измененную страницу...

НО

Abcpdf не позволяет перезаписать исходный файл. Из "Сохранить документацию метода":

ABCpdf использует интеллектуальную схему загрузки объектов точно в срок, которая обеспечивает загрузку в память только тех объектов, которые необходимы. Это означает, что если вы изменяете большие документы, тогда нагрузка на сервер будет минимальной. Исходный документ PDF должен быть доступен до тех пор, пока используется объект Doc.

В результате вы не можете изменять или перезаписывать PDF-файл, пока он читается в объект Doc. Вам нужно будет сохранить свой PDF-файл в другом месте, а затем поменять местами два файла после того, как использование PDF-документа объектом Doc закончится (с вызовом "Очистить", "Удалить" или "Чтение" с другим файлом PDF).

Так что вам всегда понадобится "новый pdf".

Другие вопросы по тегам