Libre Office Draw : assembler des fichiers images en un seul fichier PDF

Installation, configuration et utilisation des logiciels que vous souhaitez installer.
Avatar du membre
Linuxing
Messages : 1484
Enregistré le : mar. 25 août 2015 01:28

Re: Libre Office Draw : assembler des images PNG en un fichier PDF

Message par Linuxing »

Dernier message de la page précédente :

F15 a écrit :Bonsoir,

Je suis ce sujet depuis le début avec attention.
Pour le rangement des images, pour qu'un ordre chronologique soit favorisé, pourquoi ne pas nommer les fichiers en utilisant la date mais pas sous notre format mais à la façon anglaise Année-Mois-Jour
exemple : pour un fichier enregistré aujourd'hui le 25 janvier 2017, celui-ci serait appelé : A170125.

Ce qui permettrait même de pouvoir créer un fichier avec tous les documents de l'année.
Salut F15,

Ici, je ne sais plus trop quoi et, étant donné mes 118 images, j'hésite à les renommer toutes en les datant si le coup n'est pas certain quant à la chronologie dans le PDF... :roll:
Laptop depuis le 16 juillet 2021 : Tuxedo Polaris 17 - Processeur Intel® Core I7 - 10750H / NVIDIA GeForce RTX 1650Ti / Full-HD IPS mat 144Hz / DDR4 SO-DIMM : 16 GB (1x 16GB) 3200Mhz CL22 Samsung / SSD: 1000 GB Samsung 860 EVO (M.2 SATAIII) / WLAN & Bluetooth: Intel Wi-Fi 6 AX200 & Bluetooth 5.1 (up to 2400Mbps). OS : Linux Mint 20.3 (Una) Mate depuis ce 16 janvier 2022

Périphériques : 2 HD Western Digital - Imprimante HP Deskjet 2540 Tout-en-un / Scanner Canon Lide 110 - Navigateur : Firefox

Avatar du membre
tiogran
Messages : 163
Enregistré le : jeu. 24 nov. 2016 20:03

Re: Libre Office Draw : assembler des images PNG en un fichier PDF

Message par tiogran »

Linuxing a écrit : Pour un format connu et généralisé comme le PDF, on peut dira qu'il nous aura fait suer :lol:
Lol vi c'est net. Pis tu vas voir que lorsqu'on aura trouvé la solution quelqu'un va arriver
oui tu comprends en python tu fais une commande "PDF folder truc" et bam t'as ton fichier
Configuration personnelle du PC.
i7 4790k
radeon 7970 4g
16g ram 2133
ssd 120g (pour windaube)
hdd 1T (pour linux)
Os = dual boot windows 10 (l'escroc)
linux mint (l'insoumis)
Environnement MATE.
Une devise? en ce moment une se rappelle souvent à mon bon souvenir "Le problème EST la solution"

Avatar du membre
tiogran
Messages : 163
Enregistré le : jeu. 24 nov. 2016 20:03

Re: Libre Office Draw : assembler des images PNG en un fichier PDF

Message par tiogran »

linuxing a écrit :Ici, je ne sais plus trop quoi et, étant donné mes 118 images, j'hésite à les renommer toutes en les datant si le coup n'est pas certain quant à la chronologie dans le PDF... :roll:
Je peux t'assurer que si tu mets a001, a011, a002, a112; la macro les triera comme Caja.

Caja ne fait pas un tri alphanumérique c'est autre chose et j'aimerai arriver a faire comme lui...
Configuration personnelle du PC.
i7 4790k
radeon 7970 4g
16g ram 2133
ssd 120g (pour windaube)
hdd 1T (pour linux)
Os = dual boot windows 10 (l'escroc)
linux mint (l'insoumis)
Environnement MATE.
Une devise? en ce moment une se rappelle souvent à mon bon souvenir "Le problème EST la solution"

bealesroches
Messages : 8
Enregistré le : mar. 24 janv. 2017 11:34
Localisation : Poitou Nord
Contact :

Re: Libre Office Draw : assembler des images PNG en un fichier PDF

Message par bealesroches »

Bonjour,
Personnellement, pour assembler plusieurs documents en pdf, j'utilise pdfshuffler, disponible dans Synaptics, qui permet d'insérer plusieurs pages en un seul document.
Il est possible de réaliser plusieurs assemblages par exemple 10 pages à la fois faire des petits modules et permet ensuite d'assembler les différentes parties pour obtenir un fichier complet.
Il est aussi possible de faire du glisser déplacer pour changer ou adapter l'ordre des pages.
Si je devais faire un document de 118 pages, je nommerai mes documents dans le dossier qui va bien, pour les retrouver aisément et en fonction de l'ordre souhaité, page 1; page 2; ...page 118, soit l'ordre de l'impression ou de la lecture souhaitées, ce qui facilite grandement la mise en page.

Attention toutefois à pdfshuffler, l'affichage des vignettes n'est pas fameux et ne permettent pas vraiment de juger de la qualité du document fini qui lui sera impeccable

Pour créer mes documents, j'utilise Inkscape disponible dans Synaptics plutôt que Libre office Draw, certes on ne crée qu'une page à la fois il faut juste l'apprivoiser un peu.

Un document de 100 pages prendra du temps à créer, le gain de temps pour la mise en pages par modules avec pdfshuffler sera sûrement apprécié.

Autre astuce, s'il n'y a pas d'impératif de transparence, j'évite le PNG et je préfère le jpg pour une question de poids du document final.
Cordialement.
PC Elonex recyclé Processeur intel Pentium D CPU 3 GHz x2
Ram 3 Go, Linux Mint 18.1 Cinnamon 32 bit version 3.2.7
Kernel 4.4.0-53-generic
SSD Thoshiba 120 Go

Avatar du membre
Linuxing
Messages : 1484
Enregistré le : mar. 25 août 2015 01:28

Re: Libre Office Draw : assembler des images PNG en un fichier PDF

Message par Linuxing »

tiogran a écrit : Je peux t'assurer que si tu mets a001, a011, a002, a112; la macro les triera comme Caja.

Caja ne fait pas un tri alphanumérique c'est autre chose et j'aimerai arriver a faire comme lui...
Je pige pas trop avec précision... A1 deviendrait A01 ; A2 deviendrait A02 et, par exemple, A100 devrait être A0100 ? :roll:

En tous cas, voici comment ça se présente dans Caja chez moi... et jusqu'à A118 :lol:

Image

Béni soit le programme de capture d'écran ! 8-) :)
Laptop depuis le 16 juillet 2021 : Tuxedo Polaris 17 - Processeur Intel® Core I7 - 10750H / NVIDIA GeForce RTX 1650Ti / Full-HD IPS mat 144Hz / DDR4 SO-DIMM : 16 GB (1x 16GB) 3200Mhz CL22 Samsung / SSD: 1000 GB Samsung 860 EVO (M.2 SATAIII) / WLAN & Bluetooth: Intel Wi-Fi 6 AX200 & Bluetooth 5.1 (up to 2400Mbps). OS : Linux Mint 20.3 (Una) Mate depuis ce 16 janvier 2022

Périphériques : 2 HD Western Digital - Imprimante HP Deskjet 2540 Tout-en-un / Scanner Canon Lide 110 - Navigateur : Firefox

Avatar du membre
Linuxing
Messages : 1484
Enregistré le : mar. 25 août 2015 01:28

Re: Libre Office Draw : assembler des images PNG en un fichier PDF

Message par Linuxing »

bealesroches a écrit :Bonjour,
Personnellement, pour assembler plusieurs documents en pdf, j'utilise pdfshuffler, disponible dans Synaptics, qui permet d'insérer plusieurs pages en un seul document.
Il est possible de réaliser plusieurs assemblages par exemple 10 pages à la fois faire des petits modules et permet ensuite d'assembler les différentes parties pour obtenir un fichier complet...............Attention toutefois à pdfshuffler, l'affichage des vignettes n'est pas fameux et ne permettent pas vraiment de juger de la qualité du document fini qui lui sera impeccable............
Merci pour ta suggestion, mais ça reste encore sujet à caution ; je veux un truc qui «emballe» tout sans faire de noise :lol: ;)
Laptop depuis le 16 juillet 2021 : Tuxedo Polaris 17 - Processeur Intel® Core I7 - 10750H / NVIDIA GeForce RTX 1650Ti / Full-HD IPS mat 144Hz / DDR4 SO-DIMM : 16 GB (1x 16GB) 3200Mhz CL22 Samsung / SSD: 1000 GB Samsung 860 EVO (M.2 SATAIII) / WLAN & Bluetooth: Intel Wi-Fi 6 AX200 & Bluetooth 5.1 (up to 2400Mbps). OS : Linux Mint 20.3 (Una) Mate depuis ce 16 janvier 2022

Périphériques : 2 HD Western Digital - Imprimante HP Deskjet 2540 Tout-en-un / Scanner Canon Lide 110 - Navigateur : Firefox

bealesroches
Messages : 8
Enregistré le : mar. 24 janv. 2017 11:34
Localisation : Poitou Nord
Contact :

Re: Libre Office Draw : assembler des images PNG en un fichier PDF

Message par bealesroches »

Linuxing a écrit :Merci pour ta suggestion, mais ça reste encore sujet à caution ; je veux un truc qui «emballe» tout sans faire de noise
C'était juste un retour d'expérience où on me demandait productivité, rentabilité, sécurité et des documents irréprochables prêts à imprimer avec un budget nul !
Depuis je suis à la retraite. J'ai été remplacée par un photocopieur pour la partie pdf et rentabilité, pour le reste, ils sous-traitent. Je me sens moins stressée maintenant, par contre je cherche moi aussi le truc qui fait tout mais j'ai peur de m'ennuyer. :D
PC Elonex recyclé Processeur intel Pentium D CPU 3 GHz x2
Ram 3 Go, Linux Mint 18.1 Cinnamon 32 bit version 3.2.7
Kernel 4.4.0-53-generic
SSD Thoshiba 120 Go

Avatar du membre
tiogran
Messages : 163
Enregistré le : jeu. 24 nov. 2016 20:03

Re: Libre Office Draw : assembler des images PNG en un fichier PDF

Message par tiogran »

Bonsoir tout le monde,
linuxing a écrit :Je pige pas trop avec précision... A1 deviendrait A01 ; A2 deviendrait A02 et, par exemple, A100 devrait être A0100 ?
et non :lol: . Il faut qu'il y ait le même nombre de chiffre quelque soit la séquence sinon le tri s'en trouvera perturbé.
C'est le tri alphabétique dans le sens le plus pur du terme.
Par exemple; dans un dictionnaire "Du" viendra après "David" et donc de la même manière A2 sera trié après A1111 car le deuxième caractère de A1111 est un "1" et en comparaison du deuxième caractère de A2 qui est un "2",; il classe A1111 avant.
Caja ne fait pas un tri alphabétique au sens propre du terme; quand il rencontre un chiffre, il le traite en tant que nombre.
bealesroches a écrit :C'était juste un retour d'expérience où on me demandait productivité, rentabilité, sécurité et des documents irréprochables prêts à imprimer avec un budget nul !
merci bealesroches, il est certain qu'il en faut pas se cantonner aux seules possibilités de Libre Office. L'avantage de la procédure que je tente de mettre en place c'est qu'il n'y aura aucune action "renommer".
Configuration personnelle du PC.
i7 4790k
radeon 7970 4g
16g ram 2133
ssd 120g (pour windaube)
hdd 1T (pour linux)
Os = dual boot windows 10 (l'escroc)
linux mint (l'insoumis)
Environnement MATE.
Une devise? en ce moment une se rappelle souvent à mon bon souvenir "Le problème EST la solution"

Avatar du membre
Linuxing
Messages : 1484
Enregistré le : mar. 25 août 2015 01:28

Re: Libre Office Draw : assembler des images PNG en un fichier PDF

Message par Linuxing »

@ bealesroches et tiogran,

@ bealesroches :

J'avais au début Gscan2pdf, jusqu'au moment où ça a déconné : https://www.forum-francophone-linuxmint ... =23&t=4205" onclick="window.open(this.href);return false;

@ tiogran :

Sur base de ton dernier message sur le tri, je préfère attendre et patienter :) ;)
Laptop depuis le 16 juillet 2021 : Tuxedo Polaris 17 - Processeur Intel® Core I7 - 10750H / NVIDIA GeForce RTX 1650Ti / Full-HD IPS mat 144Hz / DDR4 SO-DIMM : 16 GB (1x 16GB) 3200Mhz CL22 Samsung / SSD: 1000 GB Samsung 860 EVO (M.2 SATAIII) / WLAN & Bluetooth: Intel Wi-Fi 6 AX200 & Bluetooth 5.1 (up to 2400Mbps). OS : Linux Mint 20.3 (Una) Mate depuis ce 16 janvier 2022

Périphériques : 2 HD Western Digital - Imprimante HP Deskjet 2540 Tout-en-un / Scanner Canon Lide 110 - Navigateur : Firefox

Avatar du membre
tiogran
Messages : 163
Enregistré le : jeu. 24 nov. 2016 20:03

Re: Libre Office Draw : assembler des images PNG en un fichier PDF

Message par tiogran »

tu fais bien linuxing, tu fais bien voici la nouvelle macro!
Elle va régler ton problème de A100 etc

Code : Tout sélectionner

SUB Main_genererPdf
    Dim doc, lesPages, unePage, page, fp, uneImg, lImage, gp as object
    Dim UrlImg() as variant
    Dim leDossImg_url, url_image, url_DossCopiePDF as string
    Dim x ,y ,z ,a ,b ,xMax, nImg, nPages as integer
    Dim props(0) as New com.sun.star.beans.PropertyValue
    Dim logg as boolean
   
    doc = thiscomponent
    lesPages = doc.Drawpages
    'logg = true
    logg = false
    fp = createunoservice("com.sun.star.ui.dialogs.FolderPicker")
    With fp
        .DisplayDirectory = convertToURL("/home/")
        .Title = "Sélectionner un dossier contenant les images à transformer"
        If .execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK then
            leDossImg_url = .directory & "/"
        End if
    End with
   
    UrlImg() = FilesName(leDossImg_url)
    xMax = Ubound(UrlImg)
    if logg then
        Msgbox("le nombre d'images est: " & xMax+1)
    end if
    With lesPages
        nPages = .getCount()
        if logg then
            Msgbox("le nombre de pages est: " & nPages)
        end if
        If nPages > 1 then
            For each page in lesPages.ElementNames
                lesPages.remove(lesPages.getbyname(page))
                if logg then
                    Msgbox(page & " a été supprimée")
                end if
            Next page       
        End if
       
        For y = 1 to xMax
            .InsertNewByIndex(y)
            if logg then
                Msgbox("la Page " & y+1 & " a été crée")
            end if
        Next   
    End with
   
    For z = 0 to xMax
        if logg then
                Msgbox("la Page " & z+1 & " est appellée")
        end if   
        unePage = lesPages.getbyindex(z)
        With unePage
            '.name = "Page " & z+1 suspendu pour test
            .name = UrlImg(z) 'activée pour test
            nImg = .getCount()
            If nImg > 0 then
                For a=0 to nImg-1
                    .remove(.getbyindex(a))
                Next
            End if
        End with   
        url_image = ConvertToURL(leDossImg_url & UrlImg(z))
        gp = createUnoservice("com.sun.star.graphic.GraphicProvider")
          props(0).Name = "URL"
          props(0).Value = url_image
          lImage = doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
          lImage.Graphic = gp.queryGraphic(props())
          unePage.add(lImage)
          New_resizeImageByWidth(lImage, 21000)
    Next
   
    With fp
        .DisplayDirectory = convertToURL("/home/")
        .Title = "Sélectionner un dossier de destination pour la copie PDF"
        If .execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK then
            url_DossCopiePDF = convertToURL(.directory & "/")
        End if
    End with
    GenererUnPdfAvec(doc, url_DossCopiePDF)   
END SUB


Function FilesName(leRepertoire as string)
    dim f2 as string
    dim x, xFiles as integer
    xFiles = 0
    f2 = Dir(leRepertoire & "*", 0)
    Do while Len(f2) >0
        f2 = Dir
        xFiles = xFiles+1
    Loop
    Dim arrayF(xFiles-1) as variant
    f2 = Dir(leRepertoire & "*", 0)
    For x = 0 to xFiles-1
        arrayF(x) = f2
        f2 = Dir
    Next
    Filesname = triAlpha(arrayF())
End Function

Sub New_resizeImageByWidth(uneImage As Object, largeur As Long)
'Fonction extraite du livre "programmation open office.org et libre office"
Dim imageInfo As Object, Proportion As Double, Taille1 As Object

imageInfo = uneImage.Graphic
Taille1 = imageInfo.SizePixel
Proportion = Taille1.Height / Taille1.Width
Taille1.Width = largeur ' largeur en 1/100 de mm
Taille1.Height = Taille1.Width * Proportion
uneImage.Size = Taille1
End Sub

SUB GenererUnPdfAvec(doc, url_dest)
    Dim adresseDoc as string
    Dim propsPDF as variant, propsFiltre as variant
   
    propsFiltre = CreateProperties(Array(_
        "PageRange", "",_
        "UseTaggedPDF", True,_
        "FormsType", 1,_
        "ExportsNotes", True,_
        "DisplayPDFDocumentTitle", False,_
        "PDFViewSelection", 1,_
        "UseLosslessCompression", True,_
        "InitialView", 2,_
        "PageLayout", 2,_
        "Zoom", 100 ))
       
    propsPDF = CreateProperties(Array(_
    "FilterName", "draw_pdf_Export", "FilterData", propsFiltre() ))
   
    adresseDoc = convertToURL(url_dest & getFileNameOnly(doc.URL) & ".pdf")
    doc.storeToURL(adresseDoc, propsPDF())
    Msgbox("fin de la copie!")
END SUB

Function CreateProperties(propList() As Variant) As Object
'Fonction extraite du livre "programmation open office.org et libre office"
Dim n as long, x as long

n = UBound(propList)
if n < 0  then
  CreateProperties = Array()
else
  if (n and 1) = 0  then
    MsgBox("Erreur : nombre impair d'arguments", 16, "CreateProperties")
  else
    Dim p(n\2) As New com.sun.star.beans.PropertyValue
    for x = 0 to n\2
      p(x).Name = propList(2*x)
      p(x).Value = propList(2*x +1)
    next
    CreateProperties = p()
  end if
end if
End Function

Function getFileNameOnly(URLPath As String) As String
'Fonction extraite du livre "programmation open office.org et libre office"
Dim s As String, parts As Variant
s = getFullFileName(URLPath)
parts = split(s, ".")
if UBound(parts()) > 0  then
  parts(UBound(parts())) = ""
  s = join(parts, ".")
  getFileNameOnly = Mid(s, 1, Len(s) -1)
else
  getFileNameOnly = parts(0)
end if
End Function

' renvoie le nom complet d'un fichier : Nom.Ext
Function getFullFileName(URLPath As String) As String
'Fonction extraite du livre "programmation open office.org et libre office"
Dim parts As Variant
parts = split(URLPath, "/")
getFullFileName = parts(UBound(parts())
End Function

function triAlpha(t1()) as variant
rem Fonction récupérée par Alain de la Chaume du forum ooO et modifiée par Hubert Lambert
dim t2() as variant
dim indexMaxi as long
dim cpt1 as long, cpt2 as long
dim varTmp as variant

    indexMaxi = ubound(t1)
    redim t2(indexMaxi)
    t2 = t1
    For cpt1 = 0 To indexMaxi - 1
        For cpt2 = cpt1 + 1 To indexMaxi
            If numberfromstring(t2(cpt1)) > numberfromstring(t2(cpt2)) Then
                varTmp = t2(cpt1)
                t2(cpt1) = t2(cpt2)
                t2(cpt2) = varTmp
            end if
        Next cpt2
    Next cpt1
    triAlpha = t2()
end function

function numberfromstring(txt as string) as integer
Rem Fonction écrite par Hubert Lambert du forum ooO
    dim s as object, search as object
    dim start as long, end_ as long
    s = createUnoService("com.sun.star.util.TextSearch")
    dim opt as new com.sun.star.util.SearchOptions
    opt.algorithmType = com.sun.star.util.SearchAlgorithms.REGEXP
    opt.searchString = "[0-9]+"
    s.setOptions(opt)
    search = s.searchForward(txt, 0, len(txt))
    start = search.startOffset(0)+1
    end_ = search.endOffset(0) - search.startOffset(0)
    numberfromstring = int(mid(txt, start, end_))
end function
La fonctionnalité tri a largement été revue grace à un membre du forum de libre office. Elle va régler les problèmes avec tes références actuelles. Mais je préfère te prevenir elle a ses limites: le tri ne fonctionnera pas sur une reference entremelant chiffres et lettres comme : "A110b52" mais j'y travaille!
Configuration personnelle du PC.
i7 4790k
radeon 7970 4g
16g ram 2133
ssd 120g (pour windaube)
hdd 1T (pour linux)
Os = dual boot windows 10 (l'escroc)
linux mint (l'insoumis)
Environnement MATE.
Une devise? en ce moment une se rappelle souvent à mon bon souvenir "Le problème EST la solution"

Avatar du membre
Linuxing
Messages : 1484
Enregistré le : mar. 25 août 2015 01:28

Re: Libre Office Draw : assembler des images PNG en un fichier PDF

Message par Linuxing »

Salut tiogran,

Cette fois, c'est dans la boîte, les 118 images sont dans le PDF et dans l'ordre :) ;) 8-)

Mais... un petit truc que j'ai eu récemment dans un autre dossier avec une image qui n'avait rien à voir avec le PDF, mais qui subit le même problème après exécution de l'autre macro :

Image

Comme tu peux le voir ci-dessus, une des miniatures représentant une des images du PDF n'est plus illustrée car on y voit l'icône JPEG à la place ; et j'en suis sûr, cela n'était pas le cas avant l'exécution de la macro :|

Lorsque je veux ouvrir cette image, j'ai ceci :

Image

Dans le cas présent l'image a acquis la taille excessive de 7,5 Mo, ce qui est surprenant :o

Dans un autre dossier, comme évoqué plus haut, mais qui n'est pas concerné par le PDF, une image s'est réduite en un icône de «0» octet :shock: :

Image

Et la seule chose que j'ai faite, ce sont les macros... tu penses qu'elles sont en cause ? ;)
Laptop depuis le 16 juillet 2021 : Tuxedo Polaris 17 - Processeur Intel® Core I7 - 10750H / NVIDIA GeForce RTX 1650Ti / Full-HD IPS mat 144Hz / DDR4 SO-DIMM : 16 GB (1x 16GB) 3200Mhz CL22 Samsung / SSD: 1000 GB Samsung 860 EVO (M.2 SATAIII) / WLAN & Bluetooth: Intel Wi-Fi 6 AX200 & Bluetooth 5.1 (up to 2400Mbps). OS : Linux Mint 20.3 (Una) Mate depuis ce 16 janvier 2022

Périphériques : 2 HD Western Digital - Imprimante HP Deskjet 2540 Tout-en-un / Scanner Canon Lide 110 - Navigateur : Firefox

Répondre