Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

19 Январь 2021, 21:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Выгрузка в PDF  (Прочитано 745 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Sliv0210
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 10


« Стартовое сообщение: 23 Ноябрь 2020, 12:15 »

Добрый день, товарищи-эксперты!
Имеется документ, который выгружается в PDF.
В этом документе есть листы, свойство Visible которых выставлено в False.
Тем не менее эти листы тоже выгружаются.
Подскажите пжлста как сделать так, чтобы выгружалось, только то, что видно
Текст кода прилагаю.

   Dim document As Object
   Dim dispatcher As Object
   
   document = ThisComponent.CurrentController.Frame
   dispatcher = CreateUnoService("com.sun.star.frame.DispatchHelper")

   fileSaveName = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
   path = Replace(ActiveWorkbook.Path, getPathSeparator(), "/") 

   Dim args1(2) as new com.sun.star.beans.PropertyValue
   args1(0).Name = "URL"
   args1(0).Value = "file:///" & path & "/" &  fileSaveName & ".pdf"  '
   args1(1).Name = "FilterName"
   args1(1).Value = "calc_pdf_Export"
   

   dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())
Записан
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 035


« Ответ #1: 23 Ноябрь 2020, 13:36 »

Добрый день.
этом документе есть листы, свойство Visible которых выставлено в False
Это как? В меню листа выбрана команда "Скрыть"? Такие листы Ваш макрос у меня в pdf не выводит.
Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
Sliv0210
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 10


« Ответ #2: 23 Ноябрь 2020, 17:51 »

Добрый день.
этом документе есть листы, свойство Visible которых выставлено в False
Это как? В меню листа выбрана команда "Скрыть"? Такие листы Ваш макрос у меня в pdf не выводит.


В тексте макроса выше стоят несколько команд, типа:
Лист2.Visible = False
Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 249


WWW
« Ответ #3: 23 Ноябрь 2020, 18:46 »

Добрый день!
Не следует в макросе для LO Basic использовать объекты из объектной модели Excel.
Следующий макрос выводит в файл pdf все листы документа, кроме второго. Файл pdf формируется в том же каталоге и с тем же именем, что и исходный документ Calc.

Код:
Sub TestPdf
  Dim oDoc As Object
  Dim dispatcher As Object
  Dim fileSaveName As String, i As Long
 
  oDoc=ThisComponent
  dispatcher = CreateUnoService("com.sun.star.frame.DispatchHelper")
  fileSaveName=oDoc.Url
 
  If fileSaveName="" Then
    MsgBox "Документ еще не сохранялся"
    Exit Sub
  End If 
 
  ' убираем расширение
  i=Len(fileSaveName)
  Do While i>1
    If Mid(fileSaveName,i,1)="." Then
      fileSaveName=mid(fileSaveName, 1, i-1)
      Exit Do
    Else   
      i=i-1
    End If 
  Loop
 
  Dim args1(1) as new com.sun.star.beans.PropertyValue
  args1(0).Name = "URL"
  args1(0).Value = fileSaveName & ".pdf"  '
  args1(1).Name = "FilterName"
  args1(1).Value = "calc_pdf_Export"
 
  With oDoc
    ' перед выводом скрываем 2-й лист, после вывода открываем 
    .sheets(1).IsVisible=False
    dispatcher.executeDispatch(.CurrentController.Frame, ".uno:ExportDirectToPDF", "", 0, args1())
    .sheets(1).IsVisible=True
  End With 
End Sub
« Последнее редактирование: 23 Ноябрь 2020, 21:14 от sokol92 » Записан

Владимир.
Sliv0210
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 10


« Ответ #4: 25 Ноябрь 2020, 09:57 »

Добрый день...
Не работает, к сожалению...
Все равно выводятся листы, у которых свойство .IsVisible = False  Непонимающий Да уж...
Записан
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 035


« Ответ #5: 25 Ноябрь 2020, 10:12 »

Неправда Ваша. Протестил на Версия: 6.4.6.2 (x86) все работает. Лист2 не выводится. Приложите свой файл, или сделайте тестовый с воспроизводимой ошибкой.
Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
Sliv0210
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 10


« Ответ #6: 25 Ноябрь 2020, 11:30 »

может это из-за того, что у меня сильно свежая версия стоит?
 Непонимающий
Version: 7.0.3.1 (x64)
Build ID: d7547858d014d4cf69878db179d326fc3483e082
CPU threads: 2; OS: Windows 10.0 Build 17763; UI render: Skia/Raster; VCL: win
Locale: ru-RU (ru_RU); ИП: ru-RU
Calc: threaded
Записан
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 035


« Ответ #7: 25 Ноябрь 2020, 12:00 »

Что бы не гадать
Цитата:
Приложите свой файл, или сделайте тестовый с воспроизводимой ошибкой.
Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 249


WWW
« Ответ #8: 25 Ноябрь 2020, 13:51 »

может это из-за того, что у меня сильно свежая версия стоит?
Я на этой версии и проверял. Ответьте, пожалуйста, на сообщения #5 и #7, и мы найдем истину.
Записан

Владимир.
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!