Ich habe auf vielen Arbeitsblattseiten ein Feld "Name", das beim Drucken automatisch mit dem Namen eines bestimmten Schülers ausgefüllt werden soll. Ich weiß, dass ich in InDesign einfach eine Musterseite erstellen kann, die diese Arbeitsblattseiten verwenden, und dort den Namen des Schülers eintragen kann.
Ich hätte gerne ein PDF der Arbeitsblattseiten, wo ich einfach den Namen in den PDF-Viewer eingeben kann, anstatt dies über InDesign tun zu müssen. Ist das möglich?
Sie können es mit Skripten tun. Ich habe dieses Skript in InDesign CS5 auf einem Mac ausprobiert und getestet. Was Sie tun müssen, ist
var students = ["First Student", "Second Student"];
usw. (Hoffentlich dauert dies nicht länger, als wenn Sie das Skript nicht verwenden würden)/Applications/Adobe InDesign CS5.5/Scripts/Scripts Panel/Samples/Javascript
wenn Sie einen Mac verwenden (ich kann mich nicht erinnern, wo es sich unter Windows befindet).Hoffe das hilft/funktioniert. Ich kann diese Antwort später verbessern.
// An InDesign CS5 javascript macro for exporting PDFs with different student names.
var students = ["Peter", "Lois", "Meg", "Chris", "Brian"];
var studentsNameTextLayer = "NAME";
// DON'T EDIT BELOW THIS LINE
// Display a "choose folder" dialog box.
if (app.documents.length != 0) {
var myFolder = Folder.selectDialog ("Choose a Folder");
if (myFolder != null) {
myExportPages(myFolder);
}
} else {
alert("Please open a document and try again.");
}
function myExportPages(myFolder)
{
var studentName, myFilePath, myFile;
var myDocument = app.activeDocument;
var myDocumentName = myDocument.name;
var theDialog = app.dialogs.add();
var myPageName = myDocument.pages.item(0).name;
var textBoxName = myDocument.pages.item(0).textFrames.item(whichTextBox);
with (theDialog.dialogColumns.add().dialogRows.add()) {
staticTexts.add({
staticLabel: "Base name:"
});
var myBaseNameField = textEditboxes.add({
editContents : myDocumentName,
minWidth : 160
});
}
var myResult = myDialog.show({
name : "ExportPages"
});
if (myResult == true) {
var myBaseName = myBaseNameField.editContents;
// Remove the dialog box from memory.
theDialog.destroy();
for (var loopCounter = 0; loopCounter < students.length; loopCounter++) {
studentName = students[loopCounter];
studentsNameTextLayer.contents = studentName;
app.pdfExportPreferences.pageRange = myPageName;
var matchColon = new RegExp(":","gi");
myPageName = myPageName.replace(matchColon, "_");
myFilePath = myFolder + "/" + myBaseName + "_" + myPageName + "_" + studentName + ".pdf";
myFile = new File(myFilePath);
myDocument.exportFile(ExportFormat.pdfType, myFile, false);
}
} else {
theDialog.destroy();
}
}
Sie könnten einfach eine Kopfzeile mit dem Namen des Schülers hinzufügen. Das würde automatisch auf jeder Seite erscheinen. Ich kann mir keinen schnelleren Weg vorstellen, dies in Acrobat ohne weiteres zu tun, wenn Sie mit vielen Seiten zu tun haben.
Sie können im Voraus eine Kopfzeile Aktion ( ) mit allem außer dem Namen des Schülers einrichten Tools > Action Wizard
und dann den Namen für jeden Drucklauf hinzufügen.
PDFs unterstützen ausfüllbare Formularfelder, daher ist dies in Acrobat ziemlich einfach. Wenn Sie jedoch InDesign verwenden möchten, müssen Sie normalerweise das Formular entwerfen und dann mit Acrobat die Platzhalterelemente durch tatsächliche Formularfelder ersetzen. Auf dieser Seite wird der Arbeitsablauf beschrieben.
Glücklicherweise verfügt Acrobat 9, wie auf derselben Seite erwähnt, über eine automatische Erkennungsfunktion für Formularfelder. Adobe hat eine Reihe von Richtlinien veröffentlicht , die befolgt werden müssen, um erkennbare Formularfelder zu erstellen. Außerdem finden Sie hier ein PDF mit Best Practices für die Formularfelderkennung .
Wenn Sie einen Feldwert an mehreren Stellen wiederholen müssen, ermöglichen Ihnen sowohl LifeCycle als auch Acrobat das einfache Duplizieren oder Kopieren und Einfügen des Felds an verschiedenen Stellen/Seiten . Stellen Sie sicher, dass Sie die Bindung in LifeCycle auf „Global“ setzen, damit alle Felder den gleichen Wert anzeigen. In Acrobat müssen Sie nur sicherstellen, dass alle Felder denselben Namen haben.
Großartige Arbeit, lese majeste.
Wenn Sie viele Namensfelder haben und alle den gleichen Wert benötigen, hat der neueste Acrobat ein Viewer-Panel, das die erkannten Formularfelder auflistet und ihnen eine Nummer mit einem Punkt für jedes Feld gibt, das die gleiche Erkennung hat. Sie müssen sie alle zusammenbringen und sie einzeln in den gleichen Namen umbenennen, was wirklich nicht viel hilft. Wenn Sie jedoch alle Dokumente mit demselben Schüler in einer Reihe zusammenhalten können, können Sie ein Javascript verwenden, um die Feldnamen für eine Reihe von Seiten zu ändern, indem Sie den Feldnamen mit einer Zeichenfolge abgleichen, und dann die Feldeinrichtungsdaten (alle Programmierung des Feldes) in ein neues Feld umzubenennen, ihm den gleichen Namen wie dem Vornamensfeld zu geben, einschließlich der Stelle auf der Seite, und dann das alte Feld zu löschen, um es aus der Seitenverarbeitung zu entfernen. Sie müssen eine Variable einfügen, für die Seiten gelesen werden sollen, Ich würde vorschlagen, einen this.pagenumber + pagetoread-Ansatz zu wählen, damit Sie einfach verschiedene Seitensätze auswählen können. Wenn Sie die Anzahl der Schüler kennen, können Sie das Skript für die Seiten jedes Schülers ausführen. Ich bin kein Programmierer, also ist die Sprache nicht in meiner Toolbox, aber die Designstücke sind es. Ich bin Prozessdesigner. Grundsätzlich verwende ich die grundlegenden Teststrukturen, um Prozesse zu erstellen, andere übersetzen das in Programmierung. Gelegentlich schlage ich Beispiele für jedes Stück nach, nehme dann Änderungen vor und binde es zusammen, um funktionierende Skripte zu erhalten. Gemäß der API-Bibliothek können Sie auf die Felder zugreifen, sie erstellen, kopieren und löschen. Sie müssen nur die Datentypen zwischen den Datenstücken abgleichen, die das Feld definieren. Suchen Sie in den adobe.com-Foren nach der API und Beispielen der Stücke, mit denen Sie spielen möchten, und verwenden Sie dann Google, um Beispiele für den Rest zu finden. Wenn Sie sie richtig zusammensetzen, können Sie ein Popup-Feld erstellen, in das Sie jeden Namen eingeben, der dann nach Bedarf auf jedem Seitensatz ausgefüllt wird. Wenn es sich um dieselben Seiten handelt, können Sie auch damit spielen. Ich habe Skripte erstellt, die mithilfe von Popups eine Reihe von Daten in Felder füllen, dann ein separates Dokument mit dem Namen als Teil davon speichern und dann für den nächsten Namen zurücksetzen, bis ich ihm sage, dass er abbrechen soll. Dann unterbricht selbst das Speichern des Dokuments die Programmierung nicht, und ich habe jeden Satz in einem Ordner gespeichert. Ich kann sie mit einer einzigen in Acrobat integrierten Operation kombinieren oder so belassen. Ich habe Skripte erstellt, die mithilfe von Popups eine Reihe von Daten in Felder füllen, dann ein separates Dokument mit dem Namen als Teil davon speichern und dann für den nächsten Namen zurücksetzen, bis ich ihm sage, dass er abbrechen soll. Dann unterbricht selbst das Speichern des Dokuments die Programmierung nicht, und ich habe jeden Satz in einem Ordner gespeichert. Ich kann sie mit einer einzigen in Acrobat integrierten Operation kombinieren oder so belassen. Ich habe Skripte erstellt, die mithilfe von Popups eine Reihe von Daten in Felder füllen, dann ein separates Dokument mit dem Namen als Teil davon speichern und dann für den nächsten Namen zurücksetzen, bis ich ihm sage, dass er abbrechen soll. Dann unterbricht selbst das Speichern des Dokuments die Programmierung nicht, und ich habe jeden Satz in einem Ordner gespeichert. Ich kann sie mit einer einzigen in Acrobat integrierten Operation kombinieren oder so belassen.
Alan Gilbertson
Adam Elsodaney
Alan Gilbertson