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

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

23 Июнь 2017, 16:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: как распознать опцию макроса  (Прочитано 805 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ASSEI
Пользователь
**
Offline Offline

Пол: Мужской
Расположение: Тамбов
Сообщений: 74


« Стартовое сообщение: 6 Март 2017, 22:27 »

Доброго вам дня, ночи форумчане, помогите с вопросом, записал макрос экспорта в PDF но вот беда сохраняет все листы в книге, хотя при записи устанавливал опцию во вкладке "общие--выделенное" подскажите как в коде макроса изменить это.

* Версия 5.1.6.2.ods (9.43 Кб - загружено 2 раз.)
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Online Online

Пол: Мужской
Расположение: Киев
Сообщений: 2 275


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 6 Март 2017, 22:37 »

1. Ты все-все-все свои файлы так называешь?
2. Код макроса показать пожадничал?
3. Эти птички у тебя как установлены?


* Печать таблицы.png (12.72 Кб, 535x309 - просмотрено 4 раз.)
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
ASSEI
Пользователь
**
Offline Offline

Пол: Мужской
Расположение: Тамбов
Сообщений: 74


« Ответ #2: 6 Март 2017, 22:39 »

нет нет, что вы, просто я не думал что такой простой макрос нельзя просмотреть, прошу прощения, критику принимаю! сейчас пробую
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Online Online

Пол: Мужской
Расположение: Киев
Сообщений: 2 275


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 6 Март 2017, 22:44 »

Его нельзя просмотреть потому что он остался у тебя в Мои макросы - документ ты положил без кода.

А насчет PDF буквально сегодня один вот тут похвастался успехами. Но он решал задачу через диспетчер, а не через API (есть мнение, что так лучше не делать, "не достойно и не подобает")
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
ASSEI
Пользователь
**
Offline Offline

Пол: Мужской
Расположение: Тамбов
Сообщений: 74


« Ответ #4: 6 Март 2017, 22:46 »

3. Эти птички у тебя как установлены?
да именно так и стоят они, как на скрине
Записан
ASSEI
Пользователь
**
Offline Offline

Пол: Мужской
Расположение: Тамбов
Сообщений: 74


« Ответ #5: 6 Март 2017, 22:47 »

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Users/%D0%92%D0%BB%D0%B0%D0%B4%D0%B5%D0%BB%D0%B5%D1%86/Desktop/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F%20%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0%20OpenDocument.pdf"
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
args1(2).Name = "FilterData"
args1(2).Value = Array(Array("UseLosslessCompression",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Quality",0,90,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ReduceImageResolution",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTaggedPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SelectPdfVersion",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ViewPDFAfterExport",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarks",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportPlaceholders",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("AllowDuplicateFieldNames",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Changes",0,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableCopyingOfContent",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportLinksRelativeFsys",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ConvertOOoTargetToPDFTarget",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarksToPDFDestination",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("_OkButtonString",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Watermark",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EncryptFile",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPasswords",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPermissionPassword",0,Array(),com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Selection",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureLocation",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureReason",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureContactInfo",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignaturePassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureCertificate",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureTSA",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE))

dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args1())
msgbox("готово")
end sub
примерно так
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Online Online

Пол: Мужской
Расположение: Киев
Сообщений: 2 275


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #6: 6 Март 2017, 23:00 »

Круто! Сам писал? Я про четвертую строчку снизу.
Лет шесть назад я это записал как-то так:
Код:
REM Сохранить указанный файл с заданным именем aURL$ и набором параметров oExpFilterOptions
Sub DoExportToPDF(oDoc, aURL$)
Dim oExpOptions
oExpOptions = Array(MkPropVal( "FilterName", "calc_pdf_Export" ),_
MkPropVal( "FilterData",  CheckPDFFilterProperties()))
oDoc.storeToURL( aURL, oExpOptions )
End Sub

REM Набор параметров для экспорта в PDF
REM Подробное описание - http://wiki.services.openoffice.org/wiki/API/Tutorials/PDF_export
Function CheckPDFFilterProperties()
CheckPDFFilterProperties = Array(_
MkPropVal( "UseLosslessCompression", False ),_
MkPropVal( "Quality", 90 ),_
MkPropVal( "ReduceImageResolution", True ),_
MkPropVal( "MaxImageResolution", 150 ),_
MkPropVal( "UseTaggedPDF", False ),_
MkPropVal( "ExportNotes", False ),_
MkPropVal( "ExportBookmarks", False ),_
MkPropVal( "OpenBookmarkLevels", 1 ),_
MkPropVal( "UseTransitionEffects", True ),_
MkPropVal( "IsSkipEmptyPages", True ),_
MkPropVal( "IsAddStream", False ),_
MkPropVal( "EmbedStandardFonts", False ),_
MkPropVal( "FormsType", 0 ),_
MkPropVal( "ExportFormFields", False ),_
MkPropVal( "AllowDuplicateFieldNames", False ),_
MkPropVal( "HideViewerToolbar", True ),_
MkPropVal( "HideViewerMenubar", False ),_
MkPropVal( "HideViewerWindowControls", False ),_
MkPropVal( "ResizeWindowToInitialPage", False ),_
MkPropVal( "CenterWindow", False ),_
MkPropVal( "OpenInFullScreenMode", False ),_
MkPropVal( "DisplayPDFDocumentTitle", True ),_
MkPropVal( "InitialView", 1 ),_
MkPropVal( "Magnification", 3 ),_
MkPropVal( "Zoom", 100 ),_
MkPropVal( "PageLayout", 2 ),_
MkPropVal( "FirstPageOnLeft", True ),_
MkPropVal( "InitialPage", 1 ),_
MkPropVal( "Printing", 2 ),_
MkPropVal( "Changes", 4 ),_
MkPropVal( "EnableCopyingOfContent", True ),_
MkPropVal( "EnableTextAccessForAccessibilityTools", True ),_
MkPropVal( "ExportLinksRelativeFsys", False ),_
MkPropVal( "PDFViewSelection", 0 ),_
MkPropVal( "ConvertOOoTargetToPDFTarget", True ),_
MkPropVal( "ExportBookmarksToPDFDestination", False ),_
MkPropVal( "_OkButtonString",  ),_
MkPropVal( "EncryptFile", False ),_
MkPropVal( "PreparedPasswords",  ),_
MkPropVal( "RestrictPermissions", False ),_
)
End Function

REM Создать пару имя-значения для установки свойств
Function MkPropVal( Optional cName As String, Optional uValue ) As com.sun.star.beans.PropertyValue
Dim oPropertyValue As New com.sun.star.beans.PropertyValue
If Not IsMissing( cName ) Then oPropertyValue.Name = cName
If Not IsMissing( uValue ) Then oPropertyValue.Value = uValue
MkPropVal() = oPropertyValue
End Function
Кажется, всё ещё работает...
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
ASSEI
Пользователь
**
Offline Offline

Пол: Мужской
Расположение: Тамбов
Сообщений: 74


« Ответ #7: 6 Март 2017, 23:21 »

не я же говорю писал не сам просто пустил запись макроса, а теперь пытаюсь разобраться, что то ваш внедрил не получается их там сразу три макроса?
Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #8: 6 Март 2017, 23:46 »

не я же говорю писал не сам просто пустил запись макроса, а теперь пытаюсь разобраться, что то ваш внедрил не получается их там сразу три макроса?
Основной макрос DoExportToPDF (его надо запускать) и две вспомогательные функции (макрос сам к ним обращается когда нужно)
Записан

ASSEI
Пользователь
**
Offline Offline

Пол: Мужской
Расположение: Тамбов
Сообщений: 74


« Ответ #9: 6 Март 2017, 23:52 »

пишет ошибку сценария
Записан
ASSEI
Пользователь
**
Offline Offline

Пол: Мужской
Расположение: Тамбов
Сообщений: 74


« Ответ #10: 6 Март 2017, 23:57 »

ошибка!


* 01.jpg (43.53 Кб, 793x1122 - просмотрено 9 раз.)
Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #11: 7 Март 2017, 00:20 »

Вы указали адрес нового документа?
Добавьте ещё макрос с адресом и запускайте только его.
Код:
Sub main
sURL="file:///Путь/для/нового/документа.pdf"  'заменить на ваш адрес для нового документа PDF
DoExportToPDF(ThisComponent,sURL)
End Sub
Записан

ASSEI
Пользователь
**
Offline Offline

Пол: Мужской
Расположение: Тамбов
Сообщений: 74


« Ответ #12: 9 Март 2017, 11:01 »

Докладываю, макрос работает но работает так же как я и записал его с помощью записи макросов, вывод работает также что и ваш, суть моего вопроса остался открытым, мне требовалось изменить в макросе опцию при экспорте в PDF что бы сохранял активный лист, в опции ПДФ есть переключатель вот его хотелось бы изменить а как ?


* 01.jpg (61.1 Кб, 793x1122 - просмотрено 5 раз.)
« Последнее редактирование: 9 Март 2017, 11:06 от ASSEI » Записан
mikekaganski
Старожил
****
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 473


« Ответ #13: 9 Март 2017, 11:31 »

Прошу уточнить, какую опцию Вы имеете ввиду? В диалоге экспорта PDF я не нашёл опции экспортировать лист, только страницы (1,2,3,...) либо выделение.

EDIT: вижу, прошу прощения, долго думал.
В список опций, указанных JohnSUN, нужно добавить либо PageRange (строка - перечисление страниц), либо Selection (здесь должен передаваться объект - исходный код в filter/source/pdf/pdfexport.cxx, см. PDFExport::Export()).

В Вашем коде параметр Selection был, но пустой.
« Последнее редактирование: 9 Март 2017, 11:43 от mikekaganski » Записан

С уважением,
Михаил Каганский
ASSEI
Пользователь
**
Offline Offline

Пол: Мужской
Расположение: Тамбов
Сообщений: 74


« Ответ #14: 9 Март 2017, 11:43 »

либо выделение.
именно та самая опция, когда устанавливаю опцию "выделенное" как показано на рисунке стрелкой у меня экспортируется один лист , тот с какого делается экспорт,  где в коде эта опция я бы хотел ее изменить или на крайняк дописать.
Записан
Страниц: 1 2 »   Вверх
  Печать  
 
Перейти в:  

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