Bom dia!
luizmachado escreveu:Alguem tem uma solucao para isto?
Eu faria a listagem em um browser e do browse abre os demais PDF's, pois talvez terá problemas com a questão de segurança de cada visualizador de PDF que estiver como padrão para cada usuário.
Mas independente da questão se segurança, é possível sim fazer um PDF com uma lista de links para outros PDF's (ou qualquer outro link) usando #require "hbhpdf" e #include 'harupdf.ch' e a função "HPDF_Page_CreateURILinkAnnot"
A função HPDF_Page_CreateURILinkAnnot() é usada para criar uma anotação de link para um URI (Uniform Resource Identifier) dentro de um arquivo PDF criado em Harbour. Essa anotação permite que o usuário clique em um link dentro do PDF e seja redirecionado para uma página da web, um arquivo PDF ou outro recurso da internet.
Abaixo estão os parâmetros da função HPDF_Page_CreateURILinkAnnot():
page: O objeto de página HPDF_Page em que a anotação de link deve ser criada.
x_left: A posição x esquerda do retângulo de anotação.
y_bottom: A posição y inferior do retângulo de anotação.
x_right: A posição x direita do retângulo de anotação.
y_top: A posição y superior do retângulo de anotação.
uri: O URI de destino do link. Deve ser uma string ASCII.
border_style: O estilo da borda do retângulo de anotação. Pode ser "HPDF_AnnotBorderStyle.SOLID", "HPDF_AnnotBorderStyle.DASHED" ou "HPDF_AnnotBorderStyle.BEVELED".
hilight_mode: O modo de destaque do link. Pode ser "HPDF_AnnotHighlightMode.INVERT" ou "HPDF_AnnotHighlightMode.OUTLINE".
font: O objeto de fonte HPDF_Font usado para renderizar o texto do link. Pode ser NULL para usar a fonte padrão.
font_size: O tamanho da fonte do texto do link.
color: A cor do texto do link. Deve ser especificada em formato RGB.
Exemplos:
Código: Selecionar todos
HPDF_Page_CreateURILinkAnnot(page, x_left, y_bottom, x_right, y_top, "http://www.exemplo.com", HPDF_AnnotBorderStyle.SOLID, HPDF_AnnotHighlightMode.INVERT, NULL, 12, [0, 0, 255]);
Código: Selecionar todos
border_style := HPDF_AnnotBorderStyle.DASHED;
hilight_mode := HPDF_AnnotHighlightMode.NONE;
HPDF_Page_CreateURILinkAnnot(page, x_left, y_bottom, x_right, y_top, "http://www.exemplo.com", border_style, hilight_mode, NULL, 10, [0, 128, 0]);
Código: Selecionar todos
font := HPDF_GetFont(doc, "Helvetica-Bold", NULL);
HPDF_Page_CreateURILinkAnnot(page, x_left, y_bottom, x_right, y_top, "http://www.exemplo.com", HPDF_AnnotBorderStyle.BEVELED, HPDF_AnnotHighlightMode.OUTLINE, font, 14, [255, 0, 0]);
As coordenadas podem ser por meio de uma matriz:
Código: Selecionar todos
local coords := {50, 50, 150, 75}
HPDF_Page_CreateURILinkAnnot(page, coords, "http://www.exemplo.com", HPDF_AnnotBorderStyle.SOLID, HPDF_AnnotHighlightMode.INVERT, NULL, 12, [0, 0, 255])