Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Sumatra o Acrobat hacer un Indice (https://www.clubdelphi.com/foros/showthread.php?t=88450)

shoulder 08-06-2015 18:36:41

Sumatra o Acrobat hacer un Indice
 
Hola me estan pidiendo un indice de una carpeta scaneada o sea un historial de compras, en una tabla armo el indice un campo descripcion y numero de pagina, pero se puede hacer mediante sumatra o acrobat que al elegir el tema del indice vaya directamente a la pagina dentro del PDF?.

Gracias.

Casimiro Notevi 08-06-2015 18:39:32

No se entiende :confused:

shoulder 08-06-2015 18:56:03

Indice
 
Hola seria asi, tengo una tabla llamada indice por ejemplo Hoja 1 - Introduccion , Hoja 2 Ventas, Hoja 59 Gastos. A su vez tengo una carpeta pdf, un archivo de 100 hojas. Al hacer click mediante un dblookupcombobox en el tema que me interesa vaya directamente a la hoja elegida en el PDF.
Gracias

ecfisa 08-06-2015 21:37:01

Hola shoulder.

Para que no tengas dificultad en reproducir el ejemplo usé el documento La cara oculta de Delphi 4 que podes descargar desde el FTP de Club Delphi.

Para el ejemplo usé el componente TACroPdf pero no tiene relevancia cuál sea, ya que la idea es mostrarte como usar el TComboBox para obtener el número de página a partir del ítem seleccionado.
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  AcroPDF1.LoadFile('La_Cara_Oculta_De_Delphi_4.pdf');
  // Confeccionar Titulos/páginas
  with ComboBox1 do
  begin
    Clear;
    AddItem('PRÓLOGO DEL AUTOR', TObject(19));
    AddItem('PRÓLOGO A LA SEGUNDA EDICIÓN', TObject(23));
    AddItem('ENTORNO Y HERRAMIENTAS', TObject(27));
    AddItem('HERRAMIENTAS Y UTILIDADES', TObject(41));
    AddItem('UNIDADES, PROYECTOS Y PAQUETES', TObject(57));
    AddItem('SISTEMAS DE BASES DE DATOS', TObject(77));
    AddItem('EL MOTOR DE DATOS DE BORLAND', TObject(103));
    //...
    ItemIndex := 0;
  end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var
  pag: Integer;
begin
  // (*)
  if ComboBox1.ItemIndex <> -1 then
  begin
    // Nro de página
    pag := Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
    // Ir a la página
    AcroPDF1.setCurrentPage(pag);
  end;
end;
(*) A efecto explicativo, se podría haber escrito:
Código Delphi [-]
   if ComboBox1.ItemIndex <> -1 then
     AcroPDF1.setCurrentPage(Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]));

Muestra:


Saludos :)

shoulder 09-06-2015 01:11:34

Paginar
 
Muchisimas Gracias!.


La franja horaria es GMT +2. Ahora son las 18:00:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi