Update - Der erste Abschnitt ist nur für Acrobat Reader relevant. Informationen zur Verwendung vollständiger Acrobat-Versionen finden Sie im zweiten Abschnitt.
Acrobat Reader
ich all das Vorwort werde durch diese Angabe ist wahrscheinlich nicht die Antwort, die Sie suchen, aber ich fühlte, dies garantiert eine Erklärung als nur ein Kommentar.
Eine ähnliche, selbst beantwortete Frage wurde zu SO gestellt (here), wo der OP zu dem Schluss kam, dass dieses Verhalten von Entwurf ist und nichts dagegen getan werden kann, womit ich fast einverstanden bin.
Während ich sicher bin, dass der Reader selbst Anmerkungen hinzufügen kann, ist das einzige einfache Mittel, dies mit dem Reader Plugin (AcroPDFLib) zu erreichen, dass das geladene Dokument zu diesem Zeitpunkt "Reader Enabled" ist Annotationen werden genauso verfügbar wie in Reader. Wenn Sie die Kontrolle über die Dokumente haben, die das Plugin laden soll, kann dies eine Lösung für Sie sein.
Zu Ihrer Frage über die mögliche Einstellung Collab.showAnnotToolsWhenNoCollab = True
als Workaround zeigten meine Suchen nur, dass dies eine praktikable Lösung für diejenigen ist, die eine Vollversion von Acrobat, nicht Reader verwenden. Genauer gesagt, auf einem Adobe Forum (here), kommentierte ein Adobe Mitarbeiter direkt von dieser Immobilie auf die Verwendung:
Nein, es ist nicht [etwa so dass in Adobe Reader zu kommentieren]. Es ist über das Aktivieren von Kommentaren in einem Browser für Acrobat Standard oder Professional. Wenn Sie das Kommentieren in Reader aktivieren möchten, müssen Sie die PDFs selbst mit dem Acrobat Professional oder dem Adobe Livecycle Reader Extension Server "Reader Enable" aktivieren ( ).
Zugegeben, dieser Kommentar bezieht sich auf Acrobat 9, scheint aber immer noch für Acrobat XI gültig zu sein.
Ein letztes Bit. Ich weiß nicht den Umfang Ihrer Anwendung, so dass dies völlig irrelevant sein kann, aber wenn dies eine kommerzielle Anwendung ist, auch wenn Sie eine funktionale Problemumgehung finden, würde ich zögern, es zu verwenden, da es die Adobe-Verletzung verletzen könnte Leserlizenzvertrag (here); speziell Abschnitt 4.3.3, Deaktivierte Funktionen. Die kurze Version ist, wie bei den meisten Unternehmen, sie wollen nicht, dass Sie ihren Schutz umgehen.
Vollversionen von Acrobat
Der Code folgt ein PDF-Viewer erstellen (das Fenster des Formular mit zum Zeichnen), öffnen Sie ein PDF, legen Sie dann collab.showAnnotToolsWhenNoCollab = true
Anmerkungen auf dem offenen PDF zu ermöglichen. Dies erfordert einen Verweis auf die Acrobat-Typbibliothek.
void CreatePdfViewerAndOpenFile(string pdfFile)
{
short AV_DOC_VIEW = 2;
short PDUseBookmarks = 3;
short AVZoomFitWidth = 2;
Type AcroExch_AVDoc = Type.GetTypeFromProgID("AcroExch.AVDoc");
_acroExchAVDoc = (Acrobat.CAcroAVDoc)Activator.CreateInstance(AcroExch_AVDoc);
bool ok = _acroExchAVDoc.OpenInWindowEx(pdfFile, this.Handle.ToInt32(), AV_DOC_VIEW, -1, 0, PDUseBookmarks, AVZoomFitWidth, 0, 0, 0);
if (ok)
{
CAcroPDDoc pdDoc = (CAcroPDDoc)_acroExchAVDoc.GetPDDoc();
object jsObj = pdDoc.GetJSObject();
Type jsObjType = jsObj.GetType();
object collab = jsObjType.InvokeMember("collab",
BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance,
null, jsObj, null);
jsObjType.InvokeMember("showAnnotToolsWhenNoCollab",
BindingFlags.SetProperty | BindingFlags.Public | BindingFlags.Instance,
null, collab, new object[] { true });
}
}
Rufen Sie diese Methode von wo immer Sie das PDF anzeigen möchten. Wenn Sie fertig sind, rufen Sie die Methode Close
auf oder die PDF-Datei bleibt im Acrobat-Prozess im Hintergrund geöffnet.
_acroExchAVDoc.Close(-1);
Beachten Sie, dass viele „normale“ Funktionalität wird aus diesem Beispiel links, wie Form Resize Handhabung usw., aber es sollte Ihnen den Einstieg. Da die Größenanpassung in diesem Beispiel nicht behandelt wird, möchten Sie wahrscheinlich das Formular maximieren, bevor Sie die Methode aufrufen, sodass der Viewer groß genug ist, um nützlich zu sein. Laden Sie das Acrobat SDK (here) herunter und schauen Sie sich das ActiveViewVB-Beispielprojekt an, das ich für einige Beispiele verwendet habe, um weitere Informationen zur Verwendung des Viewers auf diese Weise zu erhalten. Als Referenz habe ich das Acrobat XI SDK verwendet.
Gibt es eine Möglichkeit, JavaScript aus dem Plugin zu verwenden? – Jerry
Ich hoffe, wenn jemand einen Weg finden könnte, es zu tun oder einen Workaround. – Jerry
Kann das Browser-Plugin in einem WebBrowser-Steuerelement verwendet werden? Wenn ja, wie kann dies getan werden? – Jerry