Autore Topic: Componente gb.poppler  (Letto 114 volte)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.152
  • Tonno verde
    • Mostra profilo
Componente gb.poppler
« il: 19 Gennaio 2024, 17:56:14 »
Ciao ragazzi,
sto cercando di capire come ottenere dal componente in oggetto il formato UNI, qualcuno lo sa?
Io credevo di aver individuato nella proprietà Type di PdfAction quello che faceva al caso mio, ma non riesco a usarlo senza ottenere un errore di segmentazione.
A seguire un codice provato:
Codice: [Seleziona]
Public Sub Main()
 
  Dim hPdf As PdfDocument
  ' Dim hAction As PdfAction
  Dim sPath, sType As String
  Dim iHeight As Integer
 
  ' prima occorre inserire un file pdf nel progetto:
  sPath = Application.Path &/ "test.pdf"
  hPdf = New PdfDocument(sPath)
  ' Try hAction = New PdfAction
  ' Try sType = hAction.Type ' <------------Da errore di segmentazione!
  ' If Error Then Print Error.Text
 
  '' e l'altezza restituita non corrisponde ad alcun formato UNI
  ' iHeight = Round((hPdf[0].Render().Height) * 0.393700787401575)
  ' Print iHeight
  ' sType = ReturnType(iHeight)
  ' Print sType
 
End

Private Sub ReturnType(iHeight As Integer) As String 
 
  Dim aList As String[] = ["Custom", "A3", "A4", "A5", "B5", "Letter", "Executive", "Legal"]
  Dim i As Byte
  ' else, 420, 297, 210, 250, 279, 330, 356 mm
  Select iHeight
    Case 420
      i = 1
    Case 297
      i = 2
    Case 210
      i = 3
    Case 250
      i = 4
    Case 279
      i = 5
    Case 330
      i = 6
    Case 356
      i = 7
    Case Else
      i = 0
  End Select
  Return aList[i]
 
End

 :ciao:
« Ultima modifica: 19 Gennaio 2024, 22:57:31 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.152
  • Tonno verde
    • Mostra profilo
Re:Componente gb.poppler
« Risposta #1 il: 19 Gennaio 2024, 22:55:06 »
Il Prof. Hans Lehmann del libro tedesco mi ha dato la soluzione (in effetti avrei dovuto arrivarci da solo  :hard: ), il calcolo deve tener conto della risoluzione dell'immagine restituita:
Codice: [Seleziona]
iHeight = Round((hPdf[0].Height / hPdf.Resolution) * 25.4)

Rimane il mistero per me di come si usa PdfAction

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.266
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Componente gb.poppler
« Risposta #2 il: 20 Gennaio 2024, 01:29:41 »
... mi ha dato la soluzione ..., il calcolo deve tener conto della risoluzione dell'immagine restituita:
C'eravamo arrivati anche noi (forse prima di lui). Vedi all'interno del codice presente nella seguente pagina:
https://www.gambas-it.org/wiki/index.php/Codice_essenziale_per_mostrare_un_file_PDF_con_le_risorse_del_Componente_gb.poppler


Rimane il mistero per me di come si usa PdfAction
...anche per me.  :rolleyes:
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.152
  • Tonno verde
    • Mostra profilo
Re:Componente gb.poppler
« Risposta #3 il: 20 Gennaio 2024, 08:03:48 »
... mi ha dato la soluzione ..., il calcolo deve tener conto della risoluzione dell'immagine restituita:
C'eravamo arrivati anche noi (forse prima di lui). Vedi all'interno del codice presente nella seguente pagina:
https://www.gambas-it.org/wiki/index.php/Codice_essenziale_per_mostrare_un_file_PDF_con_le_risorse_del_Componente_gb.poppler
Si è per quello che davo le testate nel muro.
Mi sto dimenticando tutto e per giunta non capisco più il codice che ho scritto  :-[
Citazione

Rimane il mistero per me di come si usa PdfAction
...anche per me.  :rolleyes:
Potrebbe essere un bug?

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.152
  • Tonno verde
    • Mostra profilo
Re:Componente gb.poppler
« Risposta #4 il: 22 Gennaio 2024, 09:32:39 »

Potrebbe essere un bug?


Non si tratta di un bug il prof. Lehmann mi ha dato la soluzione anche a questo: allego un progetto

 :ciao:

P.S. Una precisazione: la stella è quella del Natale di Nostro Signore
« Ultima modifica: 22 Gennaio 2024, 16:47:19 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.152
  • Tonno verde
    • Mostra profilo
Re:Componente gb.poppler
« Risposta #5 il: 22 Gennaio 2024, 15:18:15 »

Non si tratta di un bug il prof. Lehmann mi ha dato la soluzione anche a questo: allego un progetto


La mia funzione per determinare il formato era bacata.
Ho sostituito il progetto con uno nuovo, chiedo scusa a chi l'ha scaricato  :-[

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro