[RESUELTO] Exportar en PDF el area resaltada en amarillo

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
marcosAoo
Mensajes: 25
Registrado: Mié Dic 31, 2014 7:22 am

[RESUELTO] Exportar en PDF el area resaltada en amarillo

Mensaje por marcosAoo »

Buenos días a todos

Llevo dias batallando :knock: :crazy: por hacer esto:
En la siguiente hoja de calculo:
solo deseo exportar en PDF el area resaltada en amarillo
en paginas tamaño 4X6 Pulgadas


Pienso que :idea: en las siguientes macros, la macro del problema es la que se llama: "Sub Imprimiendo44()"

(¿Que necesito modificar para que mis deseos se hagan realidad? :bravo: solamente exportar en PDF el area resaltada en amarillo
en paginas tamaño 4X6 Pulgadas)


En caso de no ser posible exportar en PDF en 4X6 pulgadas ya me conformo con que solo las celdas seleccionadas sean exportadas a PDF y que "ocupen toda la pagina"

Adjunto 2 pdf creo que los nombres de los pdf son muy descriptivos.

Este es el codigo que estoy usando:

Código: Seleccionar todo

Option Explicit

'http://oooug.jp/faq/index.php?faq%2F4b%2F1069


Sub ExportarPDF()
Dim oDoc As Object
Dim mOpciones(0) As New "com.sun.star.beans.PropertyValue"
Dim sRuta As String
Dim oHojaActiva As Object
Dim sValor As String
Dim sRutaURL As String
Dim sRutaCompleta As String
Dim oCelda As Object
Dim sNombre As String
Dim Rangos As String
Dim Nombre_Final As String
Dim mAI(2) As New com.sun.star.table.CellRangeAddress	
	GlobalScope.BasicLibraries.LoadLibrary( "Tools" )
	'Referencia al documento desde donde se llama la macro
	oDoc = ThisComponent
	Call BorrarAreasImpresion( oDoc )		
	'CONSTRUIMOS EL DIRECTORIO DONDE ESTA GUARDADA LA HOJA DE CALCULO
	
	'Referencia al documento activo
	sRutaURL = ThisComponent.getURL()
	'Convertimos la ruta URL en formato local
	sRutaCompleta = ConvertFromUrl( sRutaURL )
	'Obtenemos solo el nombre del archivo
	sNombre = FileNameOutOfPath( sRutaURL )
	'Obtenemos el directorio donde esta el archivo
	sRuta = DirectoryNameoutofPath(sRutaCompleta, GetPathSeparator())
	
	'SELECCIONAMOS CELDAS A IMPRIMIR
	       	'Rango "U1:AC57"
	mAI(0).Sheet = 0
	mAI(0).StartColumn = 0
	mAI(0).StartRow = 0
	mAI(0).EndColumn = 15
	mAI(0).EndRow = 28
		'Agregamos las áreas de impresión
	ThisComponent.getCurrentController.getActiveSheet.setPrintAreas( mAI() )
			
	Call Imprimiendo44()
				
	'CONTRUIMOS EL NOMBRE DE ARCHIVO
			
	'Referencia a la hoja activa
	oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
		'Referencia a la celda B4	
	oCelda = oHojaActiva.getcellRangeByName( "B4" )
	
	sValor = oCelda.getString()
	
	sValor = CStr(sValor)
	Nombre_Final = Join( split( sValor,"/"),"_",)
			
	'Establecemos el tipo de filtro
	mOpciones(0).Name = "FilterName"
	'Construimos el filtro correcto PDF para cada aplicacion
	mOpciones(0).Value = LCase("Calc") & "_pdf_Export"
	sRuta = ConvertToUrl(sRuta & "/" & Nombre_Final) & ".pdf"

	'Guardamos el archivo
	oDoc.storeToURL( sRuta, mOpciones() )

End Sub

Sub Imprimiendo44()
'Matriz para las opciones de impresión
Dim mOpc(2) As New com.sun.star.beans.PropertyValue
Dim mDI(2) As New com.sun.star.beans.PropertyValue
Dim PaperSize as New com.sun.star.awt.Size

	mDI(0).Name = "Name"
	mDI(0).Value = "cups-pdf"
	mDI(1).Name = "PaperOrientation"
	mDI(1).Value = com.sun.star.view.PaperOrientation.LANDSCAPE
	
	PaperSize.Width = 10240
    PaperSize.Height = 6000
    
	mDI(2).Name = "PaperSize"
	mDI(2).Value = com.sun.star.view.PaperFormat.USER
'	ThisComponent.setPrinter( mDI )
	
	'El número de copias
	mOpc(0).Name = "CopyCount"
	mOpc(0).Value = 1
	'Si se imprimen en juegos
	mOpc(1).Name = "Collate"
	mOpc(1).Value = True
	'Las páginas a imprimir
	mOpc(2).Name = "Pages"
	mOpc(2).Value = "1"

'	thisComponent.Print( mOpc() )
    End Sub
    
    
'Macro para borrar todas las áreas de impresión del archivo
Sub BorrarAreasImpresion( Archivo As Object)
Dim oHoja As Object

	For Each oHoja In Archivo.Sheets
		oHoja.setPrintAreas( Array() )
	Next

End Sub
Adjuntos
MarcosAoo.pdf
RESULTADO INDESEADO
(68.97 KiB) Descargado 197 veces
RESULTADO DESEADO .pdf
ESTO ES LO QUE QUIERO LOGRAR COMO RESULTADO
(28.04 KiB) Descargado 207 veces
s21 foro.ods
ESTE ES EL ARCHIVO
(24.86 KiB) Descargado 211 veces
Última edición por mauricio el Mié Abr 12, 2017 11:09 pm, editado 2 veces en total.
Razón: Marcar icono de resuelto
LibreOffice 6.2.4.2 Con LINUX MINT 19 Cinammon 64 Bits
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Exportar en PDF el area resaltada en amarillo

Mensaje por fornelasa »

marcosAoo escribió:En caso de no ser posible exportar en PDF en 4X6 pulgadas ya me conformo con que solo las celdas seleccionadas sean exportadas a PDF y que "ocupen toda la pagina"
Además de lo que has hecho, todo esto parece ser un problema de ajustar margenes de impresión y de ancho de columnas optimas.
Si te sirviera, mira este archivo para una hoja tamaño carta.
Adjuntos
s21 foro (1).ods
Ajuste de pdf
(24.16 KiB) Descargado 237 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
marcosAoo
Mensajes: 25
Registrado: Mié Dic 31, 2014 7:22 am

Re: Exportar en PDF el area resaltada en amarillo

Mensaje por marcosAoo »

Fornelasa eres un campeon :bravo: de las macros, gracias a personas como ustedes es posible aprender a usar el software libre.

Me sirvio y voy a dar por solucionado este tema. :mrgreen:

Ademas me sirvio para este tema este otro hilo: https://forum.openoffice.org/es/forum/v ... pdf#p49819

Gracias fornelasa por tu valioso tiempo.
Pasa buen día gracias.
LibreOffice 6.2.4.2 Con LINUX MINT 19 Cinammon 64 Bits
Responder