Writer - Draw

Автор Ципихович Эндрю, 27 февраля 2024, 16:10

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

Ципихович Эндрю

Здравствуйте, узнал, что либра может открывать пдф файл с помощью Draw, насколько я помню Ворд это не делает, пробовал давно - не получилось, там при открытии появляется окно "Преобразование файла" - я все опции не опробовал, но то, что пробовал - не взлетело
так вопрос такой: как в либре  Writer макросом открыть файл по нужному пути, и конечная цель уточнить сколько там страниц и в зависимости от ответа послать на печать и выставить опции "Альбомная" "Несколько" "Зеркальная ориентация по короткому краю", спасибо
на вопрос почему это сразу не сделать в пдф - отвечу, много чего уже делает либра Writer, хотелось быть в одной среде

bigor

в Libre pdf открывается Draw, но не все ПДФ файлы открываются как были задуманы, верстка, шрифты могут поползти и в результате получите не то, что ожидалось. Опции печати больше зависят от драйверов, и не всеми можно рулить через макросы.
Поддержать наш форум можно здесь

Ципихович Эндрю

спасибо за ответ, странно обычно пдф клеем намертво скреплён)), а раз это был файл - скрин сделанный сканером макросом его можно переформатировать с пдф в формат - крепко склеенный, или сразу нужно было сохранять в другом формате, в png например?

bigor

Я имел в виду пдф, которые имеют текстовый слой и могут редактироваться, если у вас пдф отсканированные картинки, то им вряди что угрожает
Поддержать наш форум можно здесь

economist

Есть ещё гибридный PDF.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Ципихович Эндрю

у меня пдф - скан, сделанный на сканере, и вопрос тот же:
Цитата: Ципихович Эндрю от 27 февраля 2024, 16:10как в либре  Writer макросом открыть файл по нужному пути, и конечная цель уточнить сколько там страниц и в зависимости от ответа послать на печать и выставить опции "Альбомная" "Несколько" "Зеркальная ориентация по короткому краю"

economist

pdftk даст информацию о страницах. Получить ее в макрос можно через stdout,  примеры stdout есть на Форуме
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Ципихович Эндрю

пытаюсь открыть файл
Sub ConvertPDFToDraw(FileName As String)
    ' Создаем новый документ Draw
    Dim oDoc As Object
    oDoc = ThisComponent.DrawDocuments.Add

    ' Преобразуем PDF-файл в формат Draw
    Dim oPages As Object
    oPages = oDoc.DrawPages
    oPages.ConvertFromPDF(FileName)

    ' Сохраняем документ Draw
    oDoc.Store
End Sub
фиаско на строке:
oDoc = ThisComponent.DrawDocuments.AddОшибка времени выполнения Basic.
Свойство или метод не найдены: DrawDocuments
как подправить?
и куда вставить:
Dim file As String: file = "I:\Эндрю Питоньяк.pdf"спасибо

bigor

Цитата: Ципихович Эндрю от 27 февраля 2024, 21:16oDoc = ThisComponent.DrawDocuments.Add
куда то вас не туда понесло. Смотрите здесь пример загрузки и пдф в том числе.
Поддержать наш форум можно здесь

Ципихович Эндрю

сделал
Sub OpenMyPDF1()

Dim file As String: file = "I:\Эндрю Питоньяк1.pdf"
Dim Doc As Object
Dim param(1) As Long

' Инициализируем массив
param(0) = 0 ' Draw_pdf_Import

' Загружаем PDF-файл
Set oDoc = StarDesktop.loadComponentFromUrl(ConverttoURL(file), "_blank", 0, param())

End Sub
ошибка
Ошибка времени выполнения Basic.
Объектная переменная не установлена
на строке
Set oDoc = StarDesktop.loadComponentFromUrl(ConverttoURL(file), "_blank", 0, param())как исправить?

bigor

Я же дал пример, а вы опять чего то фантазируете
Поддержать наш форум можно здесь

Ципихович Эндрю

я пробовал, получал ошибку
Ошибка времени выполнения Basic.
Вызвано исключение
Type: com.sun.star.lang.IllegalArgumentException
Message: Unsupported URL <file:///%D0%AD%D0%BD%D0%B4%D1%80%D1%8E%20%D0%9F%D0%B8%D1%82%D0%BE%D0%BD%D1%8C%D1%8F%D0%BA1.pdf>: "type detection failed".
код
Sub H1

Dim Param(0) as new com.sun.star.beans.PropertyValue
Dim Doc As Object
Dim FullPath As String: FullPath = "I:\Эндрю Питоньяк1.pdf"

dfg = Dir(FullPath)
FullPath = iFolder & dfg
Param(0).Name = "FilterName"

Select Case right(FullPath,3)
case "xls"
Param(0).Value = "MS Excel 97"
Case "txt"
Param(0).Value = "Text"
Case "pdf"
Param(0).Value = "Draw_pdf_Import"
end select
oDoc =  StarDesktop.loadComponentFromUrl(ConverttoURL(fullpath),"_blank",0,param())


End Sub

bigor

я бы тоже ругался
Dim FullPath As String: FullPath = "I:\Эндрю Питоньяк1.pdf"

dfg = Dir(FullPath)
FullPath = iFolder & dfg

Поддержать наш форум можно здесь

Ципихович Эндрю

Цитата: bigor от 28 февраля 2024, 09:01Dim FullPath As String: FullPath = "I:\Эндрю Питоньяк1.pdf"

dfg = Dir(FullPath)
FullPath = iFolder & dfg
это же тоже самое, что у меня и было, где ругался бейсик, не?

bigor

он ругается в другой строке, но на FullPath
Поддержать наш форум можно здесь