[Résolu][Calc]Export pdf page et zone d'impression définie.

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

[Résolu][Calc]Export pdf page et zone d'impression définie.

Message par martinbrait »

Bonjour,

Comment faire pour n'exporter réellement que la sélection figurant sur une feuille, et non tout le classeur ?

' #FUNCTION# ====================================================================================================================
' Name...........: exportSelectiontopdf
' Description ...: Imprimer une zone d'impression dans un pdf
' Syntax.........: exportSelectiontopdf(FilePath)
' Parameters ....:
' $vValue - Value to add
' Return values .: Success - Void
' Failure - -1, sets @error
' |1 - $avArray is not an array
' |2 - $avArray is not a 1 dimensional array
' Author ........: Alex
' Modified.......: martinbrait - code cleanup
' Remarks .......: Prérequis, une feuille de classeur
' Related .......:
' Link ..........;
' Example .......' Yes
'# Sub testexportselectiontopdf()
'# exportSelectiontopdf("c:\temp\testcalc.pdf")
'# End Sub
' ===============================================================================================================================

Code : Tout sélectionner

Sub exportSelectiontopdf(FilePath)

Dim oFrame as object, oDispatcher as object, oDoc as object, oController as object, oSheet as object
Dim oRange as object, oDispatcherService as object, oSelection as object
Dim aFilterData(0) as new com.sun.star.beans.PropertyValue


Dim props As Variant, propsFiltre As Variant
   propsFiltre = CreateProperties(Array("SelectPdfVersion",1 ))
   props = CreateProperties(Array("FilterName", "calc_pdf_Export", "FilterData", propsFiltre() ))


oDocument = ThisComponent
oSheet = oDocument.Sheets(0)
oController = oDocument.getCurrentController()
oFrame = oController.getFrame()
oDispatcherService = createUnoService("com.sun.star.frame.DispatchHelper")
oRange = oFirstSheet.getCellRangeByPosition(0, 0, getLastUsedColumn(oSheet), 3)
oController.Select(oRange)
oSelection = ThisComponent.getCurrentController().getSelection()

sURL= ConvertToUrl(FilePath)

oDocument.storeToURL(sURL, props)

End Sub

Sub testexportselectiontopdf()
exportSelectiontopdf("c:\temp\testcalc4.pdf")
End Sub

' #FUNCTION# ====================================================================================================================
' Name...........: exportRangetopdf
' Description ...: Imprimer une zone d'impression, dont l'adresse est indiquée en paramètre
' Syntax.........: exportRangetopdf(FilePath,StartColnum As Integer,EndColnum As Integer,StartRowNum As Integer,EndRowNum As Integer)
' Parameters ....:
' $vValue - Value to add
' Return values .: Success - Void
' Failure - -1, sets @error
' |1 - $avArray is not an array
' |2 - $avArray is not a 1 dimensional array
' Author ........: Alex
' Modified.......: martinbrait - code cleanup
' Remarks .......: Prérequis, une feuille de classeur
' Related .......:
' Link ..........;
' Example .......' Yes
'# Sub testexportselectiontopdf()
'# exportSelectiontopdf("c:\temp\testcalc.pdf")
'# End Sub
' ===============================================================================================================================

Code : Tout sélectionner

Sub exportRangetopdf(FilePath,StartColnum As Integer,EndColnum As Integer,StartRowNum As Integer,EndRowNum As Integer)

Dim oFrame as object, oDispatcher as object, oDoc as object, oController as object, oSheet as object
Dim oRange as object, oDispatcherService as object, oSelection as object
Dim aFilterData(0) as new com.sun.star.beans.PropertyValue
Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress
Dim iEndCol As Integer
Dim aPrintRanges(0) As Object

Dim props As Variant, propsFiltre As Variant
   propsFiltre = CreateProperties(Array("SelectPdfVersion",1 ))
   props = CreateProperties(Array("FilterName", "calc_pdf_Export", "FilterData", propsFiltre() ))


oDoc = ThisComponent
oSheet = oDoc.Sheets(0)
oController = oDoc.getCurrentController()
oFrame = oController.getFrame()
oDispatcherService = createUnoService("com.sun.star.frame.DispatchHelper")
'oRange = oFirstSheet.getCellRangeByPosition(0, 0, getLastUsedColumn(oFirstSheet), 3)

rem ----------------------------------------------------------------------
CellRangeAddress.Sheet = 0
CellRangeAddress.StartColumn = StartColNum
CellRangeAddress.StartRow = StartRowNum
CellRangeAddress.EndColumn = EndColNum
CellRangeAddress.EndRow = EndRowNum
aPrintRanges(0)=CellRangeAddress

oDoc.Sheets.getByIndex(0 ).setPrintAreas(aPrintRanges())   

sURL= ConvertToUrl(FilePath)

'attention, le pdf ne doit pas déjà exister !
oDoc.storeToURL(sURL, props)

End Sub

Sub testexportRangetopdf()
exportRangetopdf("c:\temp\babybel7.pdf",0,1,3,5)
End Sub
Merci pour votre aide, et à bientôt !
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par martinbrait le 07 juil. 2016 08:15, modifié 5 fois.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc]Exporter pdf page et zone d'impression bien défini

Message par Piaf »

Bonjour
Il existe dans le Forum une fonction Recherche avancée.
En l'utilisant, au lieu d'attendre que les autres le fasse à ta place, tu auras la réponse à ta question.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Calc]Exporter pdf page et zone d'impression bien défini

Message par jeanmimi »

Bonjour,
Une extension de Denis Radwan ExportFeuillesVersPDF-1.2.3.oxt facilite cette opération.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Calc]Exporter pdf page et zone d'impression bien défini

Message par martinbrait »

Bon, merci à tous, ça donne des idées !
Je n'ai pas réussi à mettre en fonctionnement la syntaxe ci-dessus, dommage.
J'ai bien essayé avec la restriction à une page, sans succès.

' #FUNCTION# ====================================================================================================================
' Name...........: exportSelectiontopdf
' Description ...: Imprimer une zone d'impression dans un pdf
' Syntax.........: exportSelectiontopdf(FilePath)
' Parameters ....:
' $vValue - Value to add
' Return values .: Success - Retourne le type simple, de contenu de la cellule.
' Failure - -1, sets @error
' |1 - $avArray is not an array
' |2 - $avArray is not a 1 dimensional array
' Author ........: Alex
' Modified.......: martinbrait - code cleanup
' Remarks .......: Prérequis, une feuille de classeur
' Related .......:
' Link ..........;
' Example .......' Yes
'# Sub testexportselectiontopdf()
'# exportSelectiontopdf("c:\temp\testcalc.pdf")
'# End Sub
' ===============================================================================================================================

Code : Tout sélectionner

Sub exportSelectiontopdf(FilePath)

Dim oFrame as object, oDispatcher as object, oDoument as object, oController as object, oSheet as object
Dim oRange as object, oDispatcherService as object, oSelection as object,sv As object
Dim aFilterData(0) as new com.sun.star.beans.PropertyValue
'sélectionner seulement la feuille active c'est PrintAllSheet qui faut mettre à 0 vu que je veut n'imprimer que une page(car les réglage effectué avant m'ont permit de mettre mon impression sur une page)


Dim pEp As Boolean
Dim props As Variant, propsFiltre As Variant

' Ici, il y a probablement, une imprécision du filtre !
   propsFiltre = CreateProperties(Array("SelectPdfVersion",1 ))
   props = CreateProperties(Array("FilterName", "calc_pdf_Export", "FilterData", propsFiltre() ))


	oDocument = ThisComponent
	oSheet = oDocument.Sheets(0)
	oController = oDocument.getCurrentController()
	oFrame = oController.getFrame()
	oDispatcherService = createUnoService("com.sun.star.frame.DispatchHelper")
	
'	Ici, il y a probablement une mauvaise utilisation de la sélection
	oRange = oSheet.getCellRangeByPosition(0, 0, getLastUsedColumn(oSheet), 3)
	oController.Select(oRange)
	oSelection = ThisComponent.getCurrentController().getSelection()
	oSelection = oFrame.getSelection()
	
	pEp = True
    sv = CreateUnoService("com.sun.star.sheet.GlobalSheetSettings")
    sv.PrintAllSheets = False   'on sélectionne une feuille vu qu'avant on a activé la feuille qu'on veut imprimer c'est bon'
     
    
	
	sURL= ConvertToUrl(FilePath)
	
	oDocument.storeToURL(sURL, props)
	'oDocument.Print(props())	


    sv.PrintAllSheets = pEp ' remettre la valeur initial

End Sub

Sub testexportselectiontopdf()
exportSelectiontopdf("c:\temp\testcalc4.pdf")
End Sub
Tant pis. LE CODE CI-DESSUS A ENCORE UNE ERREUR DE LOGIQUE, A CORRIGER SI POSSIBLE.
Merci pour les suggestions, @ plus !
Dernière modification par martinbrait le 30 avr. 2016 18:49, modifié 2 fois.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9255
Inscription : 28 août 2010 08:45

Re: [Calc]Exporter pdf page et zone d'impression bien défini

Message par micmac »

Bonjour,

Votre compteur de messages indique 240 et vous n'avez toujours pas compris les règles de balisage du forum.

Nous vous invitons à apporter les modifications nécessaires à un balisage correct et à faire un effort pour conserver à ce forum son caractère professionnel et simplifier la tâche de la modération.

Merci
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
ThierryT
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 467
Inscription : 10 nov. 2012 17:05

Re: [Calc]Export pdf page et zone d'impression bien définie.

Message par ThierryT »

Bonjour,

En espérant que les fichiers joints puissent t'aider à progresser.....

Et avec un peu de recherche sur le forum : https://forum.openoffice.org/fr/forum/v ... rt#p272226
et d'autres fils, bien sûr....
LibreOffice 6.1.3.2 x64 / AOO 4.1.5 (x86) sous Windows 8.1 (x64)
Java 8.x (x64 et x86), Firefox, Thunderbird,....

“Celui qui aime à apprendre est bien près du savoir.” (Confusius)
Comment baliser Résolu
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Calc]Export pdf page et zone d'impression bien définie.

Message par martinbrait »

Merci Thierry !
Je vais chercher dans ce sens là, avec les fichiers que tu me transmets.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !