Ошибка печати при экспорте в Pdf

Автор Тема: Ошибка печати при экспорте в Pdf  (Прочитано 49849 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alz

  • ADN OPEN
  • **
  • Сообщений: 97
  • Карма: 11
Re: Ошибка печати при экспорте в Pdf
« Ответ #60 : 21-12-2024, 21:12:53 »
Чет мне кажется, вот такой код явно проще чем перекраивать настройки профилей и лезть в dsd файлы, но каждому конечно свое, я стараюсь во всякие системные файлы не лазить, сломаешь там что нить, та и хз как в других версиях када будет, как пример раньше при пакетном изменении чертежей сохранение просто оборачивал в try catch, если файл открыт просто выловится исключение, а тот же код в 2025 каде какого то фига ломал те чертежи, которые были закрыты и должны были сохраниться, вот пришлось проверки на нахождение dwl делать, что бы даже не пытаться перезаписать такой чертеж.

Код - C# [Выбрать]
  1. private bool UnitePages(List<string> pages, string fileName)
  2. {
  3.     if (pages.Count == 0) return false;
  4.     try
  5.     {
  6.         //создаем экземпляр ридера из первого пдф документа
  7.         using (PdfReader pdfReader = new PdfReader(pages[0]))
  8.         {
  9.             //получаем документ из первого ридера
  10.             using (iTextSharp.text.Document document = new iTextSharp.text.Document(pdfReader.GetPageSizeWithRotation(1)))
  11.             {
  12.                 //создаем выходной документ как копию первого открытого
  13.                 using (PdfCopy pdfCopy = new PdfCopy(document, new System.IO.FileStream(fileName, System.IO.FileMode.CreateNew)))
  14.                 {
  15.                     //открываем первый документ
  16.                     document.Open();
  17.                     //получаем содержимое первой страницы открытого документа
  18.                     PdfImportedPage pdfImportedPage = pdfCopy.GetImportedPage(pdfReader, 1);
  19.                     //добавляем полученную страницу в выходной документ
  20.                     pdfCopy.AddPage(pdfImportedPage);
  21.                     //проходим по оставшимся документам
  22.                     for (int i = 1; i < pages.Count; i++)
  23.                     {
  24.                         //создаем новый экземпляр ридера
  25.                         using (PdfReader pdfReader2 = new PdfReader(pages[i]))
  26.                         {
  27.                             //получаем первую страницу
  28.                             using (iTextSharp.text.Document document2 = new iTextSharp.text.Document(pdfReader.GetPageSizeWithRotation(1)))
  29.                             {
  30.                                 //открываем страницу
  31.                                 document2.Open();
  32.                                 //записываем содержимое этой страницы
  33.                                 pdfImportedPage = pdfCopy.GetImportedPage(pdfReader2, 1);
  34.                                 //добавляем эту страницу в выходной документ
  35.                                 pdfCopy.AddPage(pdfImportedPage);
  36.                             }
  37.                         }
  38.                     }
  39.                 }
  40.             }
  41.         }
  42.         return true;
  43.     }
  44.     catch { return false; }
  45. }