Rotation PDF

Signaler
Messages postés
7
Date d'inscription
samedi 18 octobre 2003
Statut
Membre
Dernière intervention
31 mars 2010
-
Messages postés
1
Date d'inscription
samedi 28 mai 2011
Statut
Membre
Dernière intervention
28 mai 2011
-
Bonjour a tous


Quelqu'un connait-il la ligne de commande
pour faire une rotation d'un fichier PDF
avec AcroPDFLib_TLB J'arrive bien a ouvrir
un PDF faire page + et - zoom ect ect...
mais impossible de faire la rotation

Question est-ce possible ???

Merci pour vos réponses

David

6 réponses

Messages postés
3792
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
Salut,
Rotation 2D ou 3D ?
Je pense qu'il est possible d'effectuer une rotation à angle droit, mais je ne pense pas qu'il existe une méthode pour faire des rotations d'un angle quelconque. N'ayant pas l'ActiveX sous la main, je t'engage à bien fouiller les méthodes de l'activeX et chercher particulièrement les mots "View", "Rotate", "Angle". Apparemment il y a peu d'informations sur la toile à ce sujet. Si tu ne trouves toujours pas, demain je regarderai l'ActiveX.

Cordialement, Bacterius !
Messages postés
7
Date d'inscription
samedi 18 octobre 2003
Statut
Membre
Dernière intervention
31 mars 2010

Merci Bacterius d'avoir pris le temps de
me répondre effectivement il n'y a pas grand chose sur la toile a ce sujet cela fait
des semaines que je recherche en vain !

De ce fait je me suis permis de poser la question sur ce forum.

Je veux tout simplement faire une rotation
de l'affichage d'un PDF a 90°pour l'avoir en "mode portrait"de la même manière
qu'avec la barre de menu standard d' Adobe
Tu me diras pourquoi ne pas utiliser simplement cette méthode Bin c'est qu'a chaque ouverture
de fichier il faut renouveler la manip.

Je te joints le contenu de la Lib au cas où
cela peut t'aider ?

J'avais bien tenté quelques actions qui me semblait appropriée en rapport au nom mais cela n'a rien donné
je doit me tromper sur la syntaxe car message
d'erreur a chaque fois je suis un vrai débutant ,autodidacte me basant sur des sources ici où là Alors ...........

Un grand merci

David



unit AcroPDFLib_TLB;

// ************************************************************************ //
// AVERTISSEMENT
// -------
// Les types déclarés dans ce fichier ont été générés à partir de données lues
// depuis la bibliothèque de types. Si cette dernière (via une autre bibliothèque de types
// s'y référant) est explicitement ou indirectement ré-importée, ou la commande "Rafraîchir"
// de l'éditeur de bibliothèque de types est activée lors de la modification de la bibliothèque
// de types, le contenu de ce fichier sera régénéré et toutes les modifications
// manuellement apportées seront perdues.
// ************************************************************************ //

// PASTLWTR : $Revision: 1.130 $
// Fichier généré le 03/11/2009 17:51:25 depuis la bibliothèque de types ci-dessous.

// ************************************************************************ //
// Type Lib: C:\Program Files\Adobe\Acrobat 7.0\ActiveX\AcroPDF.dll (1)
// LIBID: {05BFD3F1-6319-4F30-B752-C7A22889BCC4}
// LCID: 0
// Helpfile:
// DepndLst:
// (1) v2.0 stdole, (C:\WINDOWS\system32\stdole2.tlb)
// (2) v4.0 StdVCL, (C:\WINDOWS\system32\stdvcl40.dll)
// Erreurs :
// Remarque : paramètre 'On' dans IAcroAXDocShim.setShowToolbar changé en 'On_'
// Remarque : paramètre 'to' dans IAcroAXDocShim.printPages changé en 'to_'
// Remarque : paramètre 'to' dans IAcroAXDocShim.printPagesFit changé en 'to_'
// Remarque : paramètre 'On' dans IAcroAXDocShim.setShowScrollbars changé en 'On_'
// ************************************************************************ //
{$TYPEDADDRESS OFF} // L'unité doit être compilée sans pointeur à type contrôlé.
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}

interface

uses ActiveX, Classes, Graphics, OleCtrls, OleServer, StdVCL, Variants,
Windows;


// *********************************************************************//
// GUIDS déclarés dans la bibliothèque de types. Préfixes utilisés :
// Bibliothèques de types : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Non-DISP interfaces : IID_xxxx
// *********************************************************************//
const
// Versions majeure et mineure de la bibliothèque de types
AcroPDFLibMajorVersion = 1;
AcroPDFLibMinorVersion = 0;

LIBID_AcroPDFLib: TGUID = '{05BFD3F1-6319-4F30-B752-C7A22889BCC4}';

DIID__IAcroAXDocShimEvents: TGUID = '{E790E1D1-9DE8-4853-8AC6-933D4FD9C927}';
IID_IAcroAXDocShim: TGUID = '{3B813CE7-7C10-4F84-AD06-9DF76D97A9AA}';
CLASS_AcroPDF: TGUID = '{CA8A9780-280D-11CF-A24D-444553540000}';
type

// *********************************************************************//
// Déclaration Forward des types définis dans la bibliothèque de types
// *********************************************************************//
_IAcroAXDocShimEvents = dispinterface;
IAcroAXDocShim = interface;
IAcroAXDocShimDisp = dispinterface;

// *********************************************************************//
// Déclaration de CoClasses définies dans la bibliothèque de types
// (REMARQUE: On affecte chaque CoClasse à son Interface par défaut)
// *********************************************************************//
AcroPDF = IAcroAXDocShim;


// *********************************************************************//
// DispIntf : _IAcroAXDocShimEvents
// Flags : (4096) Dispatchable
// GUID : {E790E1D1-9DE8-4853-8AC6-933D4FD9C927}
// *********************************************************************//
_IAcroAXDocShimEvents = dispinterface
['{E790E1D1-9DE8-4853-8AC6-933D4FD9C927}']
end;

// *********************************************************************//
// Interface : IAcroAXDocShim
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID : {3B813CE7-7C10-4F84-AD06-9DF76D97A9AA}
// *********************************************************************//
IAcroAXDocShim = interface(IDispatch)
['{3B813CE7-7C10-4F84-AD06-9DF76D97A9AA}']
function Get_src: WideString; safecall;
procedure Set_src(const pVal: WideString); safecall;
function LoadFile(const fileName: WideString): WordBool; safecall;
procedure setShowToolbar(On_: WordBool); safecall;
procedure gotoFirstPage; safecall;
procedure gotoLastPage; safecall;
procedure gotoNextPage; safecall;
procedure gotoPreviousPage; safecall;
procedure setCurrentPage(n: Integer); safecall;
procedure goForwardStack; safecall;
procedure goBackwardStack; safecall;
procedure setPageMode(const pageMode: WideString); safecall;
procedure setLayoutMode(const layoutMode: WideString); safecall;
procedure setNamedDest(const namedDest: WideString); safecall;
procedure Print; safecall;
procedure printWithDialog; safecall;
procedure setZoom(percent: Single); safecall;
procedure setZoomScroll(percent: Single; left: Single; top: Single); safecall;
procedure setView(const viewMode: WideString); safecall;
procedure setViewScroll(const viewMode: WideString; offset: Single); safecall;
procedure setViewRect(left: Single; top: Single; width: Single; height: Single); safecall;
procedure printPages(from: Integer; to_: Integer); safecall;
procedure printPagesFit(from: Integer; to_: Integer; shrinkToFit: WordBool); safecall;
procedure printAll; safecall;
procedure printAllFit(shrinkToFit: WordBool); safecall;
procedure setShowScrollbars(On_: WordBool); safecall;
function GetVersions: OleVariant; safecall;
procedure setCurrentHightlight(a: Integer; b: Integer; c: Integer; d: Integer); safecall;
procedure setCurrentHighlight(a: Integer; b: Integer; c: Integer; d: Integer); safecall;
property src: WideString read Get_src write Set_src;
end;

// *********************************************************************//
// DispIntf : IAcroAXDocShimDisp
// Flags : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID : {3B813CE7-7C10-4F84-AD06-9DF76D97A9AA}
// *********************************************************************//
IAcroAXDocShimDisp = dispinterface
['{3B813CE7-7C10-4F84-AD06-9DF76D97A9AA}']
property src: WideString dispid 1;
function LoadFile(const fileName: WideString): WordBool; dispid 2;
procedure setShowToolbar(On_: WordBool); dispid 3;
procedure gotoFirstPage; dispid 4;
procedure gotoLastPage; dispid 5;
procedure gotoNextPage; dispid 6;
procedure gotoPreviousPage; dispid 7;
procedure setCurrentPage(n: Integer); dispid 8;
procedure goForwardStack; dispid 9;
procedure goBackwardStack; dispid 10;
procedure setPageMode(const pageMode: WideString); dispid 11;
procedure setLayoutMode(const layoutMode: WideString); dispid 12;
procedure setNamedDest(const namedDest: WideString); dispid 13;
procedure Print; dispid 14;
procedure printWithDialog; dispid 15;
procedure setZoom(percent: Single); dispid 16;
procedure setZoomScroll(percent: Single; left: Single; top: Single); dispid 17;
procedure setView(const viewMode: WideString); dispid 18;
procedure setViewScroll(const viewMode: WideString; offset: Single); dispid 19;
procedure setViewRect(left: Single; top: Single; width: Single; height: Single); dispid 20;
procedure printPages(from: Integer; to_: Integer); dispid 21;
procedure printPagesFit(from: Integer; to_: Integer; shrinkToFit: WordBool); dispid 22;
procedure printAll; dispid 23;
procedure printAllFit(shrinkToFit: WordBool); dispid 24;
procedure setShowScrollbars(On_: WordBool); dispid 25;
function GetVersions: OleVariant; dispid 26;
procedure setCurrentHightlight(a: Integer; b: Integer; c: Integer; d: Integer); dispid 27;
procedure setCurrentHighlight(a: Integer; b: Integer; c: Integer; d: Integer); dispid 28;
end;


// *********************************************************************//
// Déclaration de classe proxy de contrôle OLE
// Nom du contrôle : TAcroPDF
// Chaîne d'aide : Adobe Acrobat 7.0 Browser Control
// Interface par défaut : IAcroAXDocShim
// DISP Int. Déf. ? : No
// Interface événements : _IAcroAXDocShimEvents
// TypeFlags : (2) CanCreate
// *********************************************************************//
TAcroPDF = class(TOleControl)
private
FIntf: IAcroAXDocShim;
function GetControlInterface: IAcroAXDocShim;
protected
procedure CreateControl;
procedure InitControlData; override;
public
function LoadFile(const fileName: WideString): WordBool;
procedure setShowToolbar(On_: WordBool);
procedure gotoFirstPage;
procedure gotoLastPage;
procedure gotoNextPage;
procedure gotoPreviousPage;
procedure setCurrentPage(n: Integer);
procedure goForwardStack;
procedure goBackwardStack;
procedure setPageMode(const pageMode: WideString);
procedure setLayoutMode(const layoutMode: WideString);
procedure setNamedDest(const namedDest: WideString);
procedure Print;
procedure printWithDialog;
procedure setZoom(percent: Single);
procedure setZoomScroll(percent: Single; left: Single; top: Single);
procedure setView(const viewMode: WideString);
procedure setViewScroll(const viewMode: WideString; offset: Single);
procedure setViewRect(left: Single; top: Single; width: Single; height: Single);
procedure printPages(from: Integer; to_: Integer);
procedure printPagesFit(from: Integer; to_: Integer; shrinkToFit: WordBool);
procedure printAll;
procedure printAllFit(shrinkToFit: WordBool);
procedure setShowScrollbars(On_: WordBool);
function GetVersions: OleVariant;
procedure setCurrentHightlight(a: Integer; b: Integer; c: Integer; d: Integer);
procedure setCurrentHighlight(a: Integer; b: Integer; c: Integer; d: Integer);
property ControlInterface: IAcroAXDocShim read GetControlInterface;
property DefaultInterface: IAcroAXDocShim read GetControlInterface;
published
property TabStop;
property Align;
property DragCursor;
property DragMode;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property Visible;
property OnDragDrop;
property OnDragOver;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnStartDrag;
property src: WideString index 1 read GetWideStringProp write SetWideStringProp stored False;
end;

procedure Register;

resourcestring
dtlServerPage = 'ActiveX';

implementation

uses ComObj;

procedure TAcroPDF.InitControlData;
const
CControlData: TControlData2 = (
ClassID: '{CA8A9780-280D-11CF-A24D-444553540000}';
EventIID: '';
EventCount: 0;
EventDispIDs: nil;
LicenseKey: nil (*HR:$80004002*);
Flags: $00000000;
Version: 401);
begin
ControlData := @CControlData;
end;

procedure TAcroPDF.CreateControl;

procedure DoCreate;
begin
FIntf := IUnknown(OleObject) as IAcroAXDocShim;
end;

begin
if FIntf = nil then DoCreate;
end;

function TAcroPDF.GetControlInterface: IAcroAXDocShim;
begin
CreateControl;
Result := FIntf;
end;

function TAcroPDF.LoadFile(const fileName: WideString): WordBool;
begin
Result := DefaultInterface.LoadFile(fileName);
end;

procedure TAcroPDF.setShowToolbar(On_: WordBool);
begin
DefaultInterface.setShowToolbar(On_);
end;

procedure TAcroPDF.gotoFirstPage;
begin
DefaultInterface.gotoFirstPage;
end;

procedure TAcroPDF.gotoLastPage;
begin
DefaultInterface.gotoLastPage;
end;

procedure TAcroPDF.gotoNextPage;
begin
DefaultInterface.gotoNextPage;
end;

procedure TAcroPDF.gotoPreviousPage;
begin
DefaultInterface.gotoPreviousPage;
end;

procedure TAcroPDF.setCurrentPage(n: Integer);
begin
DefaultInterface.setCurrentPage(n);
end;

procedure TAcroPDF.goForwardStack;
begin
DefaultInterface.goForwardStack;
end;

procedure TAcroPDF.goBackwardStack;
begin
DefaultInterface.goBackwardStack;
end;

procedure TAcroPDF.setPageMode(const pageMode: WideString);
begin
DefaultInterface.setPageMode(pageMode);
end;

procedure TAcroPDF.setLayoutMode(const layoutMode: WideString);
begin
DefaultInterface.setLayoutMode(layoutMode);
end;

procedure TAcroPDF.setNamedDest(const namedDest: WideString);
begin
DefaultInterface.setNamedDest(namedDest);
end;

procedure TAcroPDF.Print;
begin
DefaultInterface.Print;
end;

procedure TAcroPDF.printWithDialog;
begin
DefaultInterface.printWithDialog;
end;

procedure TAcroPDF.setZoom(percent: Single);
begin
DefaultInterface.setZoom(percent);
end;

procedure TAcroPDF.setZoomScroll(percent: Single; left: Single; top: Single);
begin
DefaultInterface.setZoomScroll(percent, left, top);
end;

procedure TAcroPDF.setView(const viewMode: WideString);
begin
DefaultInterface.setView(viewMode);
end;

procedure TAcroPDF.setViewScroll(const viewMode: WideString; offset: Single);
begin
DefaultInterface.setViewScroll(viewMode, offset);
end;

procedure TAcroPDF.setViewRect(left: Single; top: Single; width: Single; height: Single);
begin
DefaultInterface.setViewRect(left, top, width, height);
end;

procedure TAcroPDF.printPages(from: Integer; to_: Integer);
begin
DefaultInterface.printPages(from, to_);
end;

procedure TAcroPDF.printPagesFit(from: Integer; to_: Integer; shrinkToFit: WordBool);
begin
DefaultInterface.printPagesFit(from, to_, shrinkToFit);
end;

procedure TAcroPDF.printAll;
begin
DefaultInterface.printAll;
end;

procedure TAcroPDF.printAllFit(shrinkToFit: WordBool);
begin
DefaultInterface.printAllFit(shrinkToFit);
end;

procedure TAcroPDF.setShowScrollbars(On_: WordBool);
begin
DefaultInterface.setShowScrollbars(On_);
end;

function TAcroPDF.GetVersions: OleVariant;
begin
Result := DefaultInterface.GetVersions;
end;

procedure TAcroPDF.setCurrentHightlight(a: Integer; b: Integer; c: Integer; d: Integer);
begin
DefaultInterface.setCurrentHightlight(a, b, c, d);
end;

procedure TAcroPDF.setCurrentHighlight(a: Integer; b: Integer; c: Integer; d: Integer);
begin
DefaultInterface.setCurrentHighlight(a, b, c, d);
end;

procedure Register;
begin
RegisterComponents('ActiveX',[TAcroPDF]);
end;

end.
Messages postés
3792
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
Salut,
tout le monde a cet ActiveX
Et je pense que pour mettre ta page en mode paysage, il faut utiliser soit SetPageMode, SetLayoutMode ou SetView. Mais le problème c'est que ça prend comme paramètre un string, et je ne connais pas le string correspondant au mode portrait ... faut se renseigner sur ces fonctions sur internet

Cordialement, Bacterius !
Messages postés
7
Date d'inscription
samedi 18 octobre 2003
Statut
Membre
Dernière intervention
31 mars 2010

Merci Bacterius pour ton aide.

J'avais déjà exploré ces pistes mais ça
ne correspond pas a la rotation
EX:
SetView ('Fit')= pleine page FitH pleine largeur
SetlayoutMode('SinglePage')
SetPageMode('none')ou ('bookmarks')

Comme je te disais cela fait des semaines
que je cherche :pas moyen

Encore merci
je continue a chercher ....................

David
Messages postés
7
Date d'inscription
samedi 18 octobre 2003
Statut
Membre
Dernière intervention
31 mars 2010

Bonsoir


J'ai toujours pas trouvé ???

David
Messages postés
1
Date d'inscription
samedi 28 mai 2011
Statut
Membre
Dernière intervention
28 mai 2011

Tu peux utiliser un service en ligne pour faire une rotation permanente de PDF à la main.

Si tu veux le faire de façon programmatique et que tu ne t'en sors pas avec les API à ta disposition, tu peux utiliser PDFTK, un outil en ligne de commande, que tu peux alors appeler depuis ton programme. Pas très glamour mais si ça peut résoudre la situation...