Subida a Gitea

This commit is contained in:
luisgulo 2023-06-02 16:50:05 +02:00
commit 6492f0b16f
19 changed files with 593 additions and 0 deletions

2
.directory Normal file
View File

@ -0,0 +1,2 @@
[Desktop Entry]
Icon=./.icon.png

14
.gitignore vendored Normal file
View File

@ -0,0 +1,14 @@
#---- Gambas files to ignore (v4)
*.gambas
.lock
*~
core
core.*
vgcore
vgcore.*
.kdbg*
.*.prof
.lang/*.pot
.gambas/*
.settings
#----

36
.hidden/CHANGELOG Normal file
View File

@ -0,0 +1,36 @@
* Tue Oct 22 2019 luisgulo <luisgulo@gmail.com> 2.0.3
- Nuevo: Optimizar PDF generado a partir de Imágenes
- New Optimize PDF generated from Images
* Fri Oct 11 2019 luisgulo <luisgulo@gmail.com> 2.0.1
- Final version with minor patches
* Fri Oct 11 2019 luisgulo <luisgulo@gmail.com> 1.0.24
- Pre-Configure other dependencies: gambas3-gb-gui
* Fri Oct 11 2019 luisgulo <luisgulo@gmail.com> 1.0.23
- Ajuste de ancho y alto para otras resoluciones de monitor
* Mon Sep 09 2019 luisgulo <luisgulo@gmail.com> 1.0.22
- Ajuste de texto en Traducción
* Mon Sep 09 2019 luisgulo <luisgulo@gmail.com> 1.0.21
- Incluye idiomas: Castellano (ES) e Ingles (EN)
* Mon Sep 09 2019 luisgulo <luisgulo@gmail.com> 0.0.20
- Se deshabilita la selección de opciones hasta que seleccione un fichero
* Mon Sep 09 2019 luisgulo <luisgulo@gmail.com> 0.0.19
- Corrección de Literales
* Mon Sep 09 2019 luisgulo <luisgulo@gmail.com> 0.0.18
- Se incluye la versión de la aplicación
- Se incluye Logotipo
* Mon Sep 09 2019 luisgulo <luisgulo@gmail.com> 0.0.16
- Se eliminan mensajes de Depuración.
- Si existe fichero de destino se borra antes de generar el nuevo
* Mon Sep 09 2019 luisgulo <luisgulo@gmail.com> 0.0.15
- Lanzamiento inicial

BIN
.icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
.lang/en.mo Normal file

Binary file not shown.

107
.lang/en.po Normal file
View File

@ -0,0 +1,107 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: CompresorPDF 3.12.2\n"
"PO-Revision-Date: 2019-10-22 12:28 UTC\n"
"Last-Translator: luisgulo <luisgulo@gmail.com>\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: .project:1 FMain.form:22
msgid "Compresor PDF"
msgstr "PDF compressor"
#: .project:2
msgid "Programa que permite reducir el 'peso' de un PDF"
msgstr "Program that allows to reduce the 'weight' of a PDF"
#: FMain.class:54
msgid "Chequeo de Herramientas"
msgstr "Tool Check"
#: FMain.class:81
msgid "Error - Fichero PDF"
msgstr "Error - PDF file"
#: FMain.class:93
msgid "PDF_Comprimido-"
msgstr "Compressed_PDF-"
#: FMain.class:114
msgid "Compresión Finalizada"
msgstr "Compression Finished"
#: FMain.class:148
msgid "Versión: "
msgstr "Version: "
#: FMain.form:40
msgid "Aplicación para Reducir el peso de los PDF"
msgstr "Application to reduce the weight of PDFs"
#: FMain.form:47
msgid "Escoja Tipo de Compresión del PDF"
msgstr "Choose PDF Compression Type"
#: FMain.form:51
msgid "Salida optimizada para eBook"
msgstr "Optimized output for eBook"
#: FMain.form:57
msgid "Salida optimizada para Pantalla"
msgstr "Screen optimized output"
#: FMain.form:62
msgid "Salida optimizada para Imprimir"
msgstr "Print optimized output"
#: FMain.form:67
msgid "Optimización por Defecto (Pantalla + Imprimir)"
msgstr "Default Optimization (Screen + Print)"
#: FMain.form:72
msgid "Optimización Máxima (Ligera pérdida de calidad)"
msgstr "Maximum Optimization (Slight loss of quality)"
#: FMain.form:77
msgid "Optimizar PDF generado a partir de Imágenes"
msgstr "Optimize PDF generated from Images"
#: FMain.form:83
msgid "Seleccionar PDF"
msgstr "Select PDF"
#: FMain.form:90
msgid "Salir"
msgstr "Exit"
#: FMain.form:95
msgid "Comprimir PDF"
msgstr "Compress PDF"
#: FMain.form:105
msgid "Versión x.y.z"
msgstr "Version x.y.z"
#: frmSeleccionarPDF.class:6
msgid "Ficheros PDF"
msgstr "PDF files"
#: frmSeleccionarPDF.class:30
msgid "ERROR - Fichero PDF"
msgstr "ERROR - PDF file"
#: frmSeleccionarPDF.form:10
msgid "Seleccione un PDF"
msgstr "Select PDF"
#: frmSeleccionarPDF.form:20
msgid "Cancelar"
msgstr "Cancel"
#: frmSeleccionarPDF.form:25
msgid "Aceptar"
msgstr "Ok"

BIN
.lang/es_ES.mo Normal file

Binary file not shown.

107
.lang/es_ES.po Normal file
View File

@ -0,0 +1,107 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: CompresorPDF 3.12.2\n"
"PO-Revision-Date: 2019-10-22 12:28 UTC\n"
"Last-Translator: luisgulo <luisgulo@gmail.com>\n"
"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: .project:1 FMain.form:22
msgid "Compresor PDF"
msgstr "Compresor PDF"
#: .project:2
msgid "Programa que permite reducir el 'peso' de un PDF"
msgstr "Programa que permite reducir el 'peso' de un PDF"
#: FMain.class:54
msgid "Chequeo de Herramientas"
msgstr "Chequeo de Herramientas"
#: FMain.class:81
msgid "Error - Fichero PDF"
msgstr "Error - Fichero PDF"
#: FMain.class:93
msgid "PDF_Comprimido-"
msgstr "PDF_Comprimido-"
#: FMain.class:114
msgid "Compresión Finalizada"
msgstr "Compresión Finalizad"
#: FMain.class:148
msgid "Versión: "
msgstr "Versión: "
#: FMain.form:40
msgid "Aplicación para Reducir el peso de los PDF"
msgstr "Aplicación para Reducir el peso de los PDF"
#: FMain.form:47
msgid "Escoja Tipo de Compresión del PDF"
msgstr "Escoja Tipo de Compresión del PDF"
#: FMain.form:51
msgid "Salida optimizada para eBook"
msgstr "Salida optimizada para eBook"
#: FMain.form:57
msgid "Salida optimizada para Pantalla"
msgstr "Salida optimizada para Pantalla"
#: FMain.form:62
msgid "Salida optimizada para Imprimir"
msgstr "Salida optimizada para Imprimir"
#: FMain.form:67
msgid "Optimización por Defecto (Pantalla + Imprimir)"
msgstr "Optimización por Defecto (Pantalla + Imprimir)"
#: FMain.form:72
msgid "Optimización Máxima (Ligera pérdida de calidad)"
msgstr "Optimización Máxima (Ligera pérdida de calidad)"
#: FMain.form:77
msgid "Optimizar PDF generado a partir de Imágenes"
msgstr "Optimizar PDF generado a partir de Imágenes"
#: FMain.form:83
msgid "Seleccionar PDF"
msgstr "Seleccionar PDF"
#: FMain.form:90
msgid "Salir"
msgstr "Salir"
#: FMain.form:95
msgid "Comprimir PDF"
msgstr "Comprimir PDF"
#: FMain.form:105
msgid "Versión x.y.z"
msgstr "Versión x.y.z"
#: frmSeleccionarPDF.class:6
msgid "Ficheros PDF"
msgstr "Ficheros PDF"
#: frmSeleccionarPDF.class:30
msgid "ERROR - Fichero PDF"
msgstr "ERROR - Fichero PDF"
#: frmSeleccionarPDF.form:10
msgid "Seleccione un PDF"
msgstr "Seleccione un PDF"
#: frmSeleccionarPDF.form:20
msgid "Cancelar"
msgstr "Cancelar"
#: frmSeleccionarPDF.form:25
msgid "Aceptar"
msgstr "Aceptar"

37
.project Normal file
View File

@ -0,0 +1,37 @@
# Gambas Project File 3.0
Title=Compresor PDF
Startup=FMain
Icon=icon.png
Version=2.0.3
Component=gb.image
Component=gb.gui
Component=gb.form
Description="Programa que permite reducir el 'peso' (bytes) de un PDF\nProgram that allows to reduce the 'weight' (bytes) of a PDF\n\n\n"
Authors="Luis Gu:Lo"
TabSize=2
Translate=1
Language=es_ES
SourcePath=/home/luisgulo/ProyectosGAMBAS
Maintainer=luisgulo
Vendor=LuisGuLo
Address=luisgulo@gmail.com
Url=https://github.com/luisgulo
License=General Public License
PackageName=compresorpdf-2.0.3
PackageVersion=2
CreateEachDirectory=1
Packager=1
Systems=debian,fedora
SameDependencies=1
SameFiles=1
Menus=debian:"Applications/Office"
Categories=debian:"Office"
Groups=debian:"utils"
ExtraDependencies=debian:"ghostscript\t7\t10\ngraphicsmagick\t1\t5\ngambas3-gb-gui\t\t"
Menus=fedora:"Office/Word Processor"
Categories=fedora:"Office;Publishing;TextTools;Utility;WordProcessor"
Groups=fedora:"Applications/Productivity"
Tags=Utility,Compression,Office
Dependencies=ghostscript,graphicsmagick,gb.gui
GambasVersion=3.12
WebSite=https://github.com/luisgulo

150
.src/FMain.class Normal file
View File

@ -0,0 +1,150 @@
' Gambas class file
Public Sub BotonSALIR_Click()
Me.Close
End
Public Sub botonSeleccionarPDF_Click()
botonSeleccionarPDF.Tag = "" ' Mi zona temporal...
frmSeleccionarPDF.Load
frmSeleccionarPDF.ShowModal
End
Public Function AnimacionEscalado()
Dim i As Integer
Dim anchoMin As Integer
Dim altoMin As Integer
altoMin = BotonCOMPRIMIR.Height + BotonCOMPRIMIR.Y + 12
anchoMin = BotonCOMPRIMIR.Width + BotonCOMPRIMIR.X + 10
' Valor "encogido"
Dim anchoEncogido As Integer
Dim altoEncogido As Integer
altoEncogido = botonSeleccionarPDF.Height + botonSeleccionarPDF.Y + 10
anchoEncogido = botonSeleccionarPDF.Width + botonSeleccionarPDF.X + 10
Me.Width = anchoEncogido
Me.Height = altoEncogido
Me.Refresh
Wait 0.2
Me.Refresh
' Valor "estirado"
For i = altoEncogido To altoMin Step 30
If i >= altoMin Then Break
Me.Height = i
Me.Refresh
Wait 0.1
Me.Refresh
Next
' Forzamos al final al alto y ancho minimo
Me.Width = anchoMin
Me.Height = altoMin
Me.Refresh
Me.Resizable = False
End
Public Function ChequearHerramientas()
' Usamos como herramienta externa Ghostscript (GS)
' Si no está hay que avisar para que la instale
Dim estaOK As String
' GHOSTSCRIPT
Shell "gs --version 1>/dev/null 2>/dev/null;echo -n $?" To estaOK
' 0 => Esta instalado
If estaOK <> "0"
Message.Title = ("Chequeo de Herramientas")
Message.Error("No se ha localizado la herramienta Ghostscript (gs)" & gb.CrLf & "Debe instalarla para poder usar este programa")
BotonCOMPRIMIR.Enabled = False
Else
BotonCOMPRIMIR.Enabled = True
Endif
' GRAPHICS MAGICK
Shell "gm version 1>/dev/null 2>/dev/null;echo -n $?" To estaOK
If estaOK <> "0"
Message.Title = ("Chequeo de Herramientas")
Message.Error("No se ha localizado la herramienta Graphics Magick (gm)" & gb.CrLf & "Debe instalarla para la compresión máxima")
RPdfMaxima.Enabled = False
Else
RPdfMaxima.Enabled = True
Endif
End
Public Sub form_Show()
AnimacionEscalado()
ChequearHerramientas()
End
Public Sub BotonCOMPRIMIR_Click()
If botonSeleccionarPDF.Tag = ""
'No hay fichero seleccionado
Message.Title = ("Error - Fichero PDF")
Message.Error("Debe de seleccionar un fichero PDF")
Return
Else
'Tenemos fichero
Dim FichSalida As String
Dim trozo As String[]
trozo = Split(botonSeleccionarPDF.Tag, "/")
Dim i As Integer
For i = 0 To trozo.Max - 1
FichSalida &= trozo[i] & "/"
Next
FichSalida &= ("PDF_Comprimido-") & trozo[trozo.Max]
If Exist(FichSalida)
' Si existe borramos el anterior
Kill FichSalida
Endif
Procesando.Visible = True
Procesando.Show
Procesando.Start
Procesando.Refresh
Wait 0.1
Procesando.Refresh
'' LANZAMOS EL COMANDO DE COMPRIMIR PDF SEGUN EL RadioButton seleccionado
Dim Comando As String
Comando = GeneraCMD(botonSeleccionarPDF.Tag, FichSalida)
'Message("Voy a ejecutar:" & gb.CrLf & Comando)
Shell Comando Wait ' Esperamos a que termine
' Al terminar ocultamos siempre el "Spinner"
Procesando.Stop
Procesando.Visible = False
Procesando.Hide
Message.Title = ("Compresión Finalizada")
Message("Se ha comprimido el fichero PDF indicado" & gb.CrLf & "lo puede encontrar en:" & gb.CrLf & FichSalida)
Endif
End
Public Function GeneraCMD(FichEntrada As String, FichSalida As String) As String
Dim ComandoSalida As String
Dim pdfTipo As String
If RPdfMaxima.Value
' Usamos GM
ComandoSalida = "gm convert -density 150 -resize 800 "
ComandoSalida &= Shell$(FichEntrada) & " " & Shell$(FichSalida)
Else
' Usamos GS
If RPdfEbook.Value Then pdfTipo = "/ebook"
If RPdfImprimir.Value Then pdfTipo = "/printer"
If RPdfPantalla.Value Then pdfTipo = "/screen"
If RPdfDefecto.Value Then pdfTipo = "/default"
ComandoSalida = "gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=" & pdfTipo & " -dNOPAUSE -dQUIET -dBATCH -sOutputFile="
'ComandoSalida = "gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile="
ComandoSalida &= Shell$(FichSalida) & " " & Shell$(FichEntrada)
Endif
If RPdfImagenes.Value
' Para los PDFs que son imagenes usamos graphics magic en vez de ghostscript
'gm convert -density 150 -resize 800 $ORIGEN $DESTINO
ComandoSalida = "gm convert -density 150 -resize 800 " & Shell$(FichEntrada) & " " & Shell$(FichSalida)
Endif
'Devolvemos lo que hay que lanzar
Return ComandoSalida
End
Public Sub Form_Open()
LabelVERSION.Text = ("Versión: ") & Application.Version
System.Shell = "/bin/bash"
End

78
.src/FMain.form Normal file
View File

@ -0,0 +1,78 @@
# Gambas Form File 3.0
{ Form Form
MoveScaled(0,0,61,64)
Text = ("Compresor PDF")
{ Logo PictureBox
MoveScaled(2,2,13,13)
Expand = True
Picture = Picture["icon:/64/pdf"]
Stretch = True
}
{ LabelAPP Label
MoveScaled(18,1,40,5)
Font = Font["Bold,+3"]
Text = ("Compresor PDF")
Alignment = Align.Center
}
{ LabelAPP2 Label
MoveScaled(18,10,40,5)
Text = ("Aplicación para Reducir el peso de los PDF")
Alignment = Align.Center
}
{ !Frame1 Frame
MoveScaled(2,22,56,34)
#Public = True
Enabled = False
Text = ("Escoja Tipo de Compresión del PDF")
{ RPdfEbook RadioButton
MoveScaled(2,4,51,4)
Text = ("Salida optimizada para eBook")
Value = True
}
{ RPdfPantalla RadioButton
MoveScaled(2,9,51,4)
Text = ("Salida optimizada para Pantalla")
}
{ RPdfImprimir RadioButton
MoveScaled(2,14,51,4)
Text = ("Salida optimizada para Imprimir")
}
{ RPdfDefecto RadioButton
MoveScaled(2,19,51,4)
Text = ("Optimización por Defecto (Pantalla + Imprimir)")
}
{ RPdfMaxima RadioButton
MoveScaled(2,24,51,4)
Text = ("Optimización Máxima (Ligera pérdida de calidad)")
}
{ RPdfImagenes RadioButton
MoveScaled(2,29,51,4)
Text = ("Optimizar PDF generado a partir de Imágenes")
}
}
{ !botonSeleccionarPDF ToolButton
MoveScaled(2,16,56,5)
#Public = True
Text = ("Seleccionar PDF")
Picture = Picture["icon:/32/pdf"]
Border = True
}
{ BotonSALIR Button
MoveScaled(2,57,20,5)
Text = ("Salir")
}
{ BotonCOMPRIMIR Button
MoveScaled(38,57,20,5)
Text = ("Comprimir PDF")
}
{ Procesando Spinner
MoveScaled(27,57,5,5)
Visible = False
}
{ LabelVERSION Label
MoveScaled(18,6,40,5)
Text = ("Versión x.y.z")
Alignment = Align.Center
}
}

View File

@ -0,0 +1,33 @@
' Gambas class file
Public Sub Form_Open()
Me.x = FMain.x + 10
Me.y = FMain.y + 10
escogeFichero.Filter = ["*.pdf", ("Ficheros PDF")]
End
Public Sub botonCANCELAR_Click()
FMain.botonSeleccionarPDF.Tag = ""
FMain.Frame1.Enabled = False
Me.Close
End
Public Sub botonACEPTAR_Click()
Dim tipo As String
Dim fichero As String
fichero = escogeFichero.SelectedPath
' No creemos al usuario.. veamos si es un PDF...
Shell "echo -n $(file " & fichero & "|awk -F ':' '{print $2}'|grep -i 'pdf'|wc -l)" To tipo
If tipo <> "0"
' file fichero |awk -F ': ' '{print $2}'|grep -i "pdf"|wc -l
' Enviamos como STRING la URL absoluta del fichero
FMain.botonSeleccionarPDF.Tag = escogeFichero.SelectedPath
FMain.Frame1.Enabled = True
Me.Close
Else
' No es un PDF
FMain.Frame1.Enabled = False
Message.Title = ("ERROR - Fichero PDF")
Message.Error("El fichero seleccionado no es un PDF")
Endif
End

View File

@ -0,0 +1,19 @@
# Gambas Form File 3.0
{ Form Form
MoveScaled(0,0,79,79)
Text = ("Seleccione un PDF")
Resizable = False
{ escogeFichero FileChooser
MoveScaled(1,1,76,68)
Root = "/home"
}
{ botonCANCELAR Button
MoveScaled(33,71,21,6)
Text = ("Cancelar")
}
{ botonACEPTAR Button
MoveScaled(56,71,21,6)
Text = ("Aceptar")
}
}

10
.startup Normal file
View File

@ -0,0 +1,10 @@
FMain
Compresor PDF
0
0
2.0.3
gb.image
gb.gui
gb.form

BIN
CompresorPDF-icono.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
CompresorPDF-publicado.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

BIN
CompresorPDF.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

0
README.md Normal file
View File

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB