Anlegen von Previews aus Bilddateien und Bildern

Ein allgemeines Beispiel zur Verwendung der Klasse image finden sie hier.

Letzte Änderung :
30.07.2025, 07:35 Uhr

Anlegen von Previews aus Bilddateien und Bildern

static Image image::alloc(char* path_or_url = 0)

Erzeuge ein Preview einer Datei. Bildobjekte müssen mit image::release wieder gelöscht werden! Pfade können vollständige Systempfade (OS X) oder URLs (Nur Mac, unter Windows können zur Zeit noch keine URLs verwendet werden!) sein. Die interne Repräsentation des Bildes wird erst angelegt, wenn das Bild tatsächlich benötigt wird.

Name Typ Default Beschreibung
Return Image   Preview der Bilddatei oder allokieren einer Bildvariable
path_or_url String oder char* - Vollständiger Dateipfad oder URL auf eine Bilddatei.

Fehlt der Parameter (ab Version 2.0 R634 darf er auch leer sein), wird ein neues leeres Bild erzeugt.
#include "internal/types.h"
img = image::alloc (path);

Hole das Preview eines Templates aus der aktuellen Datenbank und sichere es auf den Schreibtisch.

#include "internal/types.h"
#include "internal/text.h"
int main () { Query qu = sql::query (sql::dbconnection ()); Image img = 0;
/// Init if (!qu) { showmessage ("No database connction"); return 0; }
img = image::alloc ();
// Retreive image query::send (qu, "select preview from pageitems where ID = 15"); query::output (qu, kImage, img); if (!query::exec(qu)) { query::close (qu); image::release (img); return 0; } while (query::fetch (qu)) {} query::close (qu);
// Save image file wlog ("", "Size of image : %d\n", image::bytes (img)); image::save (img, "$DESKTOP/aaa/pageitem15.jpg", 1); image::release (img);
return 0; }

Bilder können auch aus dem Internet geladen werden. Achtung : Wollen Sie Bilder nicht "eingebettet" importieren, müsen Sie natürlich eine Datei des Bildes anlegen (image::save) und statt frame::embed:image frame::image verwenden, aber das ist Ihnen sicherlich klar.

#include "internal/text.h"
#include "internal/types.h"
int main () { char imgFile [255]; int res; char dp [2000]; Image img = 0;
document::folder (dp); strcpy (imgFile, "http:///www.hi13.de/Auto.JPG"); img = image::alloc (imgFile);
res = frame::embed_image (gFrame, img, kPlaceTopLeft, 0.0);
if (res == 0) wlog ("", "Embedding '%s' successfully finished\n", imgFile); else wlog ("", "Embedding '%s' done with error %d\n", imgFile, res); image::release (img);
return 0; }


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

image::release

static Image image::preview(
  Image org,
  int size = 0,
  int resolution = 72,
  int color_depth = 24,
  char* format= "JPEG")

Nur Mac Erzeuge ein Preview eines Bildes. Unter Windows wird eine Kopie des Bildes zurückgegeben. Unter Mac wird mit den gemachten Angaben ein neues Bild berechnet und zurückgegeben. In beiden Fällen sollte die Variablen mit release wieder gelöscht werden.

Die Farbtiefe kann nicht bei allen Bildformaten (z.B. PICT) gesetzt werden, in diesen Fällen wird sie ignoriert.

Die Previews werden mit Hilfe von Quicktime erstellt, das nur unter Macintosh-Betriebssystemen standardmäßig installiert ist. Deshalb können Previews nur auf diesem Betriebsystem berechnet werden.
Format Verfügbarkeit Bemerkungen
JPG, JPEG alle  
TIF, TIFF
GIF
PICT nur Mac Bei PICT-Bildern wird die Farbtiefe ignoriert.
PNG
Photoshop
SGI
MacPaint
Targa
QuickDraw
QuickTime
Flash
FlashPix

Name Typ Default Beschreibung
Return Image   Preview des Bildes
org Image - Originalbild
size int Originalgröße Größe des Previews in Pixeln, 0 = Originalgröße
resolution int 72 Auflösung in ppi
color_depth int 24 Farbtiefe in Bits/Pixel
format String oder char* "JPEG" Bildformat als String, siehe obige Tabelle der Bildformate
int main ()
{
    Image	img 	= image::alloc ("$DESKTOP/clara.JPG");
    Image	prv		= image::preview (img, 140, 72, 24, "JPG");
showmessage ("Original\n\nStatus : %d\nGröße : %d",   image::error (prv),   image::bytes (prv)); showmessage ("Preview\n\nStatus : %d\nGröße : %d",   image::error (prv),   image::bytes (prv));
image::release (img); image::release (prv); return 0; }


priint:comet InDesign® Plug-Ins

snapshot_page
snapshot_frame
snapshot_frames
snapshot_rect
release
alloc

static Image image::snapshot_page(
  ItemRef docRef,
  int pageNum = 1,
  int bounding = -1,
  char* format= "JPEG",
  int quality = 2,
  float resolution = 72.0)

Seitenpreview einer Dokumentseite erzeugen. Die Funktion erzeugt von der gewünschten Seite des angegebenen Dokumentes ein Bild. Als Bildformate sind (aus Kompatibilitätsgründen zwischen Mac und Windows) nur JPG, TIFF und GIF erlaubt. Das erzeugte Bild sollte mit release wieder gelöscht werden.

In reinen Mac-Umgebungen kann das Bild mit Hilfe der Funktion preview in ein PICT (oder ein anderes dort untertsütztes Format) konvertiert werden.

Name Typ Default Beschreibung
Return Image   Das neu erzeugte Bild oder 0 im Fehlerfall
docRef ItemRef 0 Dokumentreferenz
0 : aktuelles Dokument
pageNum int 1 1-basierte Seitennummer
bounding int kOriginalSize Größe des quadratischen Rahmens in Punkten, in den das Bild (proportional) skaliert werden soll.
kOriginalSize : Originalgröße
format String oder char* "JPEG" Zielformat des Bildes. Erlaubt sind die folgenden Angaben

  JPG, JPEG
  GIF, GIFF
  TIF, TIFF

Alle anderen Angaben erzeugen ein JPEG-Bild.
quality int kAntiAliasing Verschiedene Angaben zur Ausgabe und JPEG-Qualität. Mögliche Werte sind:

Antialiasing für alle Objekte: kAntiAliasing

Voll auflösende Grafiken: kFullResGraphics

Graustufen: kDrawGray

Transparenz:
 kXPOff
 kXPLow
 kXPMedium
 kXPHigh
 kXPMaximum

JPEG Qualität (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.):
 kJPEGLowQuality
 kJPEGGoodQuality
 kJPEGExcellentQuality
 kJPEGGreatQuality

JPEG Encoding (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.):
 kJPEGBaseline
 kJPEGProgressive

Alpha Kanal:
 kAddAlpha

Der Wert wird als Bitfeld (kXXX... + kXXX + ...) übergeben, Standard ist:
kAntiAliasing
resolution float 72.0 Auflösung des Previews
#include "internal/types.h"

Erzeuge ein 100x100 Preview der dritten Seite des aktuellen Dokumentes.

int main ()
{
    Image	prv	= image::snapshot_page (0, 3, 100, "JPG");
showmessage ("Status : %d\nGröße : %d",   image::error (prv),   image::bytes (prv));
image::release (prv); return 0; }

Version 1.3.3, P/R 60, Parameter quality seit R2330
Parameter resolution seit v3.3 R3601, 02. Apr. 2013

priint:comet InDesign® Plug-Ins, Illustrator

release
snapshot_frames
preview
comet.CPage.createSnapshot

static Image image::snapshot_frames(
  ItemList frames,
  int bounding = -1,
  char* format= "JPEG",
  int quality = 2,
  float resolution = 72.0)

Preview ausgewählter Dokumentrahmen erzeugen. Die Funktion erzeugt aus einer Liste von Dokumentrahmen eine Snapshot. Als Bildformate sind (aus Kompatibilitätsgründen zwischen Mac und Windows) nur JPG, TIFF und GIF erlaubt. Das erzeugte Bild sollte mit release wieder gelöscht werden.

In reinen Mac-Umgebungen kann das Bild mit Hilfe der Funktion preview in ein PICT (oder ein anderes dort untertsütztes Format) konvertiert werden.

Name Typ Default Beschreibung
Return Image   Das neu erzeugte Bild oder 0 im Fehlerfall
frames ItemList - Liste gültiger Rahmen, siehe itemlist
bounding int kOriginalSize Größe des quadratischen Rahmens in Punkten, in den das Bild (proportional) skaliert werden soll.
kOriginalSize : Originalgröße
format String oder char* "JPEG" Zielformat des Bildes. Erlaubt sind die folgenden Angaben

  JPG, JPEG
  GIF, GIFF
  TIF, TIFF

Alle anderen Angaben erzeugen ein JPEG-Bild.
quality int kAntiAliasing Verschiedene Angaben zur Ausgabe und JPEG-Qualität. Mögliche Werte sind:

Antialiasing für alle Objekte: kAntiAliasing

Voll auflösende Grafiken: kFullResGraphics

Graustufen: kDrawGray

Transparenz:
 kXPOff
 kXPLow
 kXPMedium
 kXPHigh
 kXPMaximum

JPEG Qualität (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.):
 kJPEGLowQuality
 kJPEGGoodQuality
 kJPEGExcellentQuality
 kJPEGGreatQuality

JPEG Encoding (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.):
 kJPEGBaseline
 kJPEGProgressive

Alpha Kanal:
 kAddAlpha

Der Wert wird als Bitfeld (kXXX... + kXXX + ...) übergeben, Standard ist:
kAntiAliasing + kAddAlpha
resolution float 72.0 Auflösung des Previews
#include "internal/types.h"

Erzeuge ein 100x100 Preview der ausgewählten Rahmen des aktuellen Dokumentes.

int main ()
{
    Image	img		= image::snapshot_frames (itemlist::selected (), 100);
showmessage ("Status : %d\nGröße : %d",   image::error (img),   image::bytes (img));
image::release (img); return 0; }

Version 1.3.3, P/R 60, Parameter quality seit R2330
Parameter resolution seit v3.3 R3601, 02. Apr. 2013

priint:comet InDesign® Plug-Ins, Illustrator

release
snapshot_frame
preview
itemlist

static Image image::snapshot_frame(
  ItemRef frame,
  int bounding = -1,
  char* format= "JPEG",
  int quality = 2)

Preview eines Dokumentrahmens erzeugen Die Funktion erzeugt ein Snapshot eines Dokumentrahmens. Als Bildformate sind (aus Kompatibilitätsgründen zwischen Mac und Windows) nur JPG, TIFF und GIF erlaubt. Das erzeugte Bild sollte mit release wieder gelöscht werden.

In reinen Mac-Umgebungen kann das Bild mit Hilfe der Funktion preview in ein PICT (oder ein anderes dort untertsütztes Format) konvertiert werden.

Name Typ Default Beschreibung
Return Image   Das neu erzeugte Bild oder 0 im Fehlerfall
frame ItemRef - Gültriger Dokumentrahmen, z.B. gFrame
bounding int kOriginalSize Größe des quadratischen Rahmens in Punkten, in den das Bild (proportional) skaliert werden soll.
kOriginalSize : Originalgröße
format String oder char* "JPEG" Zielformat des Bildes. Erlaubt sind die folgenden Angaben

  JPG, JPEG
  GIF, GIFF
  TIF, TIFF

Alle anderen Angaben erzeugen ein JPEG-Bild.
quality int kAntiAliasing Verschiedene Angaben zur Ausgabe und JPEG-Qualität. Mögliche Werte sind:

Antialiasing für alle Objekte: kAntiAliasing

Voll auflösende Grafiken: kFullResGraphics

Graustufen: kDrawGray

Transparenz:
 kXPOff
 kXPLow
 kXPMedium
 kXPHigh
 kXPMaximum

JPEG Qualität (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.):
 kJPEGLowQuality
 kJPEGGoodQuality
 kJPEGExcellentQuality
 kJPEGGreatQuality

JPEG Encoding (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.):
 kJPEGBaseline
 kJPEGProgressive

Alpha Kanal:
 kAddAlpha

Der Wert wird als Bitfeld (kXXX... + kXXX + ...) übergeben, Standard ist:
kAntiAliasing + kAddAlpha
resolution float 72.0 Auflösung des Previews
#include "internal/types.h"

Erzeuge ein 100x100 Preview des Skriptrahmens.

int main ()
{
    Image	img		= image::snapshot_frame (gFrame, 100);
showmessage ("Status : %d\nGröße : %d",   image::error (img),   image::bytes (img));
image::release (prv); return 0; }

Version 1.3.3, P/R 60, parameter quality since R2330
Parameter resolution seit v3.3 R3601, 02. Apr. 2013

priint:comet InDesign® Plug-Ins, Illustrator

release
snapshot_frames
preview

static int image::release(Image img)

Wenn Bilder nicht mehr benötogt werden, müssen unbedingt die Bilddaten gelöscht werden!

Name Typ Default Beschreibung
img Image - Zu löschendendes Bild
image::release (img);


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

static int image::error(Image img)

Fehlerstatus des Bildes ermitteln. Nach dem Einlesen oder Konvertieren eines Bildes sollte erfragt werden, ob die jeweilige Aktion erfolgreich war.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
img Image - Bild, dessen Status ermittelt werden soll

Version 1.3.3, P/R 60

priint:comet InDesign® Plug-Ins

static int image::bytes(Image img)

Wie groß ist das Bild in Bytes? Diese Angabe ist inbesondere dann wichtig, wenn das Bild auf einer Datenbank gespeichert werden soll und dort für die Bilddaten nur begrenzt Platz zur Verfügung steht. Um ein Bild zu Verkleinern verwenden Sie die Funktion preview und machen dort entsprechend kleine Angaben zur Bildgröße, Farbtiefe und Auflösung. Kleiner Bilder können Sie möglicherweise auch durch die Wahl eines anderen Bildformates ("PNG" oder "JPG") erreichen.

Name Typ Default Beschreibung
Return int   Größe des Bildes in Bytes
img Image - Bild, dessen Größe ermittelt werden soll

Version 1.3.3, P/R 60

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

static int image::save(
  Image img,
  char* path,
  int rmvOld = 0)

Sichern eines Bildes in eine Datei. Existiert der Zielordner nicht, wird er angelegt.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
img Image - Bild, das gesichert werden soll
path String oder char* - Zielpfad und -name. Die Endung der Datei sollte so gewählt sein, dass sie zum Bildformat passt. Existiert der Zielordner nicht, wird er angelegt.
rmvOld int 0 Soll eine evtl. bestehende Datei zuvor gelöscht werden? 0 : Nicht löschen
Sonst : Zeigt der Zielpfad auf eine existierende Datei, wird diese Datei zuvor gelöscht. Ordner werden nicht gelöscht.

Version 1.3.3, P/R 60

priint:comet InDesign® Plug-Ins, Illustrator

static int image::count_paths(ItemRef frameRef = 0)

Anzahl der Freistellpfade im Bild das Rahmens. Enthält der Rahmen kein Bild oder das Bild keine Pfade gibt der Aufruf 0 zurück.

Name Typ Default Beschreibung
Return int   Anzahl der Freistellpfade im Bild des Rahmens. Enthält der Rahmen kein Bild oder das Bild keine Pfade gibt der Aufruf 0 zurück.
frameRef ItemRef 0 Rahmen, dessen Bild getestet wird. Fehlt die Angabe oder ist leer, wird der Rahmen des aufrufenden Skriptes (gFrame) verwendet. Ist auch gFrame nicht defininiert, wird der erste im aktuellen Dokument ausgewählte Rahmen verwendet.
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.

17. März 2006 (P/R38)

priint:comet InDesign® Plug-Ins

static char* image::pathname(ItemRef frameRef = 0, int index = 0)

Name eines Freistellpfades im platzierten Rahmenbild. Ist kein Bild platziert oder enthält das Bild keine Freistellpfade, wird ein Leerstring zurückgegeben.

Name Typ Default Beschreibung
Return char*   Name eines Freistellpfades im platzierten Rahmenbild. Ist kein Bild platziert oder enthält das Bild keine Freistellpfade, wird ein Leerstring zurückgegeben.

Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen.

frameRef ItemRef 0 Rahmen, dessen Bild getestet wird

0 : aktueller Skriptrahmen
index int 0 0-basierter Index des Freistellpfades

Achtung: Der Default-Freistellpfad kDefaultClipIndex kann hier nicht ermittelt werden.
#include "internal/types.h"
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.

17. März 2006 (P/R38)

priint:comet InDesign® Plug-Ins

static int image::pathindex(ItemRef frameRef, char* name)

Index eines Freistellpfades im platzierten Rahmenbild. Ist kein Bild platziert oder enthält das Bild keine Freistellpfade, wird -1 zurückgegeben.

Name Typ Default Beschreibung
Return int   0-basierter Index eines Freistellpfades im platzierten Rahmenbild. Ist kein Bild platziert oder enthält das Bild keine Freistellpfade, wird -1 zurückgegeben.
frameRef ItemRef - Rahmen, dessen Bild getestet wird. Fehlt die Angabe oder ist leer, wird der Rahmen des aufrufenden Skriptes (gFrame) verwendet. Ist auch gFrame nicht defininiert, wird der erste im aktuellen Dokument ausgewählte Rahmen verwendet.
name String oder char* - Name des gesuchten Freistellpfades
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.

17. März 2006 (P/R38)

priint:comet InDesign® Plug-Ins

static int image::clipindex(ItemRef frameRef = 0, int resolveDefault = 0)

Ermittle den 0-basierten Index des aktiven Freistellpfades. Hat der Rahmen kein Bild oder ist kein Photoshop-Freistellpfad aktiviert, liefert der Aufruf das Ergebnis -1.

Name Typ Default Beschreibung
Return int   0-basierter Index des aktiven Freistellpfades im platzierten Rahmenbild.

-1 : Fehler oder kein Freistellpfad gesetzt
kDefaultClipIndex (-4) : Default-Freistellpfad
frameRef ItemRef 0 Rahmen, dessen Bild getestet wird.

0 : aktueller Skriptrahmen
resolveDefault int 0 Soll der Pfadindex auch dann bestimmt werden, wenn der Default-Freistellpfad verwendet wird?

0 : Nein (Es bleibt bei der Antwort kDefaultClipIndex)

1 : Ja. Es wird ermittelt, welchen 0-basierten Index der Default-Pfad hat.
#include "internal/types.h"
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.

17. März 2006 (P/R38)
Parameter resolveDefault seit v4.0.5 R12112, 14. Jul 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int image::clippath(
  ItemRef frameRef,
  float* l = 0,
  float* t = 0,
  float* r = 0,
  float* b = 0)

Ermittle die Boundingbox des aktuellen Freistellpfades. Die Angaben erfolgen relativ zum Bildrahmen. Hat der Rahmen kein Bild oder ist kein Freistellpfad gesetzt, gibt die Funktion einen Fehlercode zurück.

Die Funktion ist identisch mit frame::image_getpath_bbox.

Name Typ Default Beschreibung
Return int   0 : Boundingbox konnte ermittelt werden
Fehlerstatus : Der Rahmen ist kein Grafikrahmen oder enthält kein Bild oder das Bild keinen Freistellpfad
frameRef ItemRef - Verweis auf einen gültigen Grafikrahmen des Dokumentes
l float* 0 links
t float* 0 oben
r float* 0 rechts
b float* 0 unten
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.


priint:comet InDesign® Plug-Ins

static int image::setclip(
  ItemRef frameRef = 0,
  int index = 0,
  int flags = 4,
  int clipToFrame = 0,
  float tolerance = 0.0,
  float minPathSize = 0.0,
  float Inset = 0.0)

Anwenden eines Freistsellpfades eines Bildes. Der Freistellpfad muss im Bilddokumemt definiert sein.

Unter comet_pdf wird auch bei einem Pfadindex > 0 der erste Freistellpfad des Bildes verwendet. Alle weiteren Funktionsparameter werden ignoriert.

Um Freistellpfade auch in comet_pdf zu setzen, verwenden Sie die Funktion setclip2.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef 0 Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen
pathindex int kIgnoreClipping 0-basierter Index des Freistellpfades

kIgnoreClipping : Freistellpfad unverändert lassen.

kResetClipping : Freistellpfad beim Einfügen des Bildes zurücksetzen.

kDefaultClipIndex : Default-Freistellpfad verwenden. comet_pdf verwendet dann den Index 0.

>= 0 : 0-basierter Pfadindex
flags int kAllowHolesFlag Parameter für die Art der Bildfreistellung. Die Werte werden als Bitfeld addiert.

kInvertFlag : Invert the resulting path by combining with a path equal to the bounds of the image.

kAllowHolesFlag : Ab v4.0.5 R18123 ignoriert!

kRestrictToFrameFlag : Ab v4.0.5 R18123 ignoriert!

Der Parameter wird von comet_pdf nicht angewendet.
cliptoFrame int 0 Soll der Freistellpfad als Rahmenbegrenzung verwendet werden?

0 : Bestehenden Rahmen behalten
1 : Freistellpfad als Rahmen verwenden
tolerance float 0.0 Die Angabe wird ab v4.0.5 R18123 ignoriert!
minPathSize float 0.0 Die Angabe wird ab v4.0.5 R18123 ignoriert!
inset float 0.0 Pfad um den angegebenen Abstand verkleinern. Angabe in Punkten. Von comet_pdf wird die Angabe ignoriert.
#include "internal/types.h"
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.

17. March 2006 (P/R38)

priint:comet InDesign® Plug-Ins, comet_pdf

frame::image

static int image::setclip2(
  ItemRef frameRef = 0,
  int pathindex = 0,
  char* pathname = 0,
  int flags = 4,
  int clipToFrame = 0,
  float tolerance = 0.0,
  float minPathSize = 0.0,
  float Inset = 0.0)

Anwenden eines Freistsellpfades eines Bildes. Der Freistellpfad muss im Bilddokumemt definiert sein.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef 0 Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen
pathindex int kIgnoreClipping 0-basierter Index des Freistellpfades

kIgnoreClipping : Freistellpfad unverändert lassen.

kResetClipping : Freistellpfad beim Einfügen des Bildes zurücksetzen.

kDefaultClipIndex : Default-Freistellpfad verwenden. comet_pdf verwendet dann den Index 0.

>= 0 : 0-basierter Pfadindex
pathname String oder char* "" Name des Freistellpfades

Ist pathindex >= 0 wird die Angabe ignoriert.
flags int kAllowHolesFlag Parameter für die Art der Bildfreistellung. Die Werte werden als Bitfeld addiert.

kInvertFlag : Invert the resulting path by combining with a path equal to the bounds of the image.

kAllowHolesFlag : Ab v4.0.5 R18123 ignoriert!

kRestrictToFrameFlag : Ab v4.0.5 R18123 ignoriert!

Der Parameter wird von comet_pdf nicht angewendet.
cliptoFrame int 0 Soll der Freistellpfad als Rahmenbegrenzung verwendet werden?

0 : Bestehenden Rahmen behalten
1 : Freistellpfad als Rahmen verwenden
tolerance float 0.0 Die Angabe wird ab v4.0.5 R18123 ignoriert!
minPathSize float 0.0 Die Angabe wird ab v4.0.5 R18123 ignoriert!
inset float 0.0 Pfad um den angegebenen Abstand verkleinern. Angabe in Punkten. Von comet_pdf wird die Angabe ignoriert.
#include "internal/types.h"
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.

10. Jun 2016 R 11600

priint:comet InDesign® Plug-Ins, comet_pdf

frame::image

static int image::count_alpha_channels(ItemRef frameRef = 0)

Wieviel Alpha-Kanäle hat das aktuell im Rahmen verwendete Bild?

Beachten Sie bitte, dass der InDesign-Dialog Objekt -%gt; Beschneidungspfad -> Optionen im Dropdowdown die Auswahl Alpha-Kanal auch dann anzeigen kann, wenn das Bild gar keinen Alphakanal hat

Name Typ Default Beschreibung
Return int   Anzahl der Alpha-Kanäle im Bild des Rahmens

0 : keine Alphakanäle verfügbar
frameRef ItemRef 0 Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen
int main ()
{
    int			i;
    char		alpha	[256];
for (i = 0; i < image::count_alpha_channels (gFrame); i++) { wlog ("", " Channel %d : '%s'\n",   i,   image::alpha_channel_name (gFrame, i)); }
wlog ("", "(Pre) Current alpha channel : %d (%s)\n",   image::alphaindex (gFrame),   image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
image::set_alpha_channel (gFrame, 2, 4, 0, 0.0, 0.0, 0.0, 12);
wlog ("", "(Post) Current alpha channel : %d (%s)\n",   image::alphaindex (gFrame),   image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
return 0; }

v3.4 R5012, 26.11.2013

priint:comet InDesign® Plug-Ins

alpha_channel_name
alpha_channel_index
set_alpha_channel

static char* image::alpha_channel_name(ItemRef frameRef = 0, int nth = 0)

Name des n-ten Alphakanales des Bildes eines Rahmens.

Name Typ Default Beschreibung
Return char*   Name des n-ten Alphakanales des Bildes eines Rahmens. Das Ergebnis wird einem erneuten Aufruf der Funktion überschrieben.

Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen.

frameRef ItemRef 0 Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen
nth int 0 0-basierter Index des Alphakanales, dessen Name ermittelt werden soll.
int main ()
{
    int			i;
    char		alpha	[256];
for (i = 0; i < image::count_alpha_channels (gFrame); i++) { wlog ("", " Channel %d : '%s'\n",   i,   image::alpha_channel_name (gFrame, i)); }
wlog ("", "(Pre) Current alpha channel : %d (%s)\n",   image::alphaindex (gFrame),   image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
image::set_alpha_channel (gFrame, 2, 4, 0, 0.0, 0.0, 0.0, 12);
wlog ("", "(Post) Current alpha channel : %d (%s)\n",   image::alphaindex (gFrame),   image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
return 0; }

v3.4 R5012, 26.11.2013

priint:comet InDesign® Plug-Ins

count_alpha_channels
alpha_channel_index
set_alpha_channel

static int image::alpha_channel_index(ItemRef frameRef, char* name)

Ermittle den Index eines Alpha-Kanales in einem Bild eines Rahmens

Name Typ Default Beschreibung
Return int   0-basierter Index eines gegebenen Alpha-Kanales des Bildes eines Rahmens

-1 : Kanal nicht gefunden
frameRef ItemRef - Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen
name String oder char* - Name des Kanales nach dem gesucht wird.
int main ()
{
    int			i;
    char		alpha	[256];
for (i = 0; i < image::count_alpha_channels (gFrame); i++) { wlog ("", " Channel %d : '%s'\n",   i,   image::alpha_channel_name (gFrame, i)); }
wlog ("", "(Pre) Current alpha channel : %d (%s)\n",   image::alphaindex (gFrame),   image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
image::set_alpha_channel (gFrame, 2, 4, 0, 0.0, 0.0, 0.0, 12);
wlog ("", "(Post) Current alpha channel : %d (%s)\n",   image::alphaindex (gFrame),   image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
return 0; }

v3.4 R5012, 26.11.2013

priint:comet InDesign® Plug-Ins

count_alpha_channels
alpha_pathname
set_alpha_channel

static int image::alphaindex(ItemRef frameRef = 0)

Ermittle den Index des aktiven Alpha-Kanales eines Bildes

Name Typ Default Beschreibung
Return int   0-basierter aktueller Alphakanal

-1 : Fehler oder kein Alpha-Kanal gesetzt
frameRef ItemRef - Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen.
int main ()
{
    int			i;
    char		alpha	[256];
for (i = 0; i < image::count_alpha_channels (gFrame); i++) { wlog ("", " Channel %d : '%s'\n",   i,   image::alpha_channel_name (gFrame, i)); }
wlog ("", "(Pre) Current alpha channel : %d (%s)\n",   image::alphaindex (gFrame),   image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
image::set_alpha_channel (gFrame, 2, 4, 0, 0.0, 0.0, 0.0, 12);
wlog ("", "(Post) Current alpha channel : %d (%s)\n",   image::alphaindex (gFrame),   image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
return 0; }

v3.4 R5012, 26.11.2013

priint:comet InDesign® Plug-Ins

count_alpha_channels
alpha_pathname
set_alpha_channel

static int image::set_alpha_channel(
  ItemRef frameRef = 0,
  int index = 0,
  int flags = 4,
  int clipToFrame = 0,
  float tolerance = 0.0,
  float minPathSize = 0.0,
  float Inset = 0.0,
  int treshold = 255)

Anwenden eines Alphakanales eines Bildes.

Unter comet_pdf wird auch bei einem Pfadindex > 0 der erste Alphakanal des Bildes verwendet. Alle weiteren Funktionsparameter werden ignoriert.

Um andere Alphakänale auch in comet_pdf setzen zu können, verwenden Sie bitte die Funktion setalpha2.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen
index int 0 0-basierter Index des Pfades, siehe alpha_channel_index

kResetClipping Alphakanal nicht anwenden

>= 0 : 0-basierter Pfadindex
flags int kAllowHolesFlag Parameter für die Art der Bildfreistellung. Die Werte werden als Bitfeld addiert werden.

kInvertFlag Invert the resulting path by combining with a path equal to the bounds of the image.

kAllowHolesFlag For edge detection, do we remove the holes or leave them in.

kRestrictToFrameFlag Bild außdem auf den Bildrahmen beschneiden.

Der Parameter wird von comet_pdf nicht angewendet.
cliptoFrame int 0 Soll der Alphakanal als Rahmenbegrenzung verwendet werden?

0 : Bestehenden Rahmen behalten
1 : Rahmen ändern
tolerance float 0.0 A tolerance value in the range of 0.0 to 10.0 specifying how close to the original path we must be if we smooth the path. 0.0 indicates a perfect match. Smoothing may simplify the path, reducing the number of points.

Der Parameter wird von comet_pdf nicht angewendet.
minPathSize float 0.0 Subpaths smaller than the minPathSize will be deleted.

Der Parameter wird von Indesign® Server und comet_pdf nicht angewendet.
inset float 0.0 How far to inset the path. Given in points.

Der Parameter wird von comet_pdf nicht angewendet.
treshold int 255 Schwellenwert im Bereich 0-255.

Der Parameter wird von comet_pdf nicht angewendet.
#include "internal/types.h"
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.

v3.3 R3500, 8 Mar 2013

priint:comet InDesign® Plug-Ins, comet_pdf

frame::image

static int image::setalpha2(
  ItemRef frameRef = 0,
  int pathindex = 0,
  char* pathname = 0,
  int flags = 4,
  int clipToFrame = 0,
  float tolerance = 0.0,
  float minPathSize = 0.0,
  float Inset = 0.0,
  int treshold = 255)

Anwenden eines Alphakanales eines Bildes.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen
pathindex int 0 0-basierter Index des Kanales, siehe alpha_channel_index

kResetClipping Alphakanal nicht anwenden

>= 0 : 0-basierter Pfadindex. Pfadindexe > 0 werden von comet_pdf ignoriert und stattdessen der Wert pathname verwendet.
pathname String oder char* "" Name des Alphakanales

Von InDesign® wird diese Angabe ignoriert!
flags int kAllowHolesFlag Parameter für die Art der Bildfreistellung. Die Werte werden als Bitfeld addiert werden.

kInvertFlag Invert the resulting path by combining with a path equal to the bounds of the image.

kAllowHolesFlag For edge detection, do we remove the holes or leave them in.

kRestrictToFrameFlag Bild außdem auf den Bildrahmen beschneiden.

Der Parameter wird von comet_pdf nicht angewendet.
cliptoFrame int 0 Soll der Alphakanal als Rahmenbegrenzung verwendet werden?

0 : Bestehenden Rahmen behalten
1 : Rahmen ändern
tolerance float 0.0 A tolerance value in the range of 0.0 to 10.0 specifying how close to the original path we must be if we smooth the path. 0.0 indicates a perfect match. Smoothing may simplify the path, reducing the number of points.

Der Parameter wird von comet_pdf nicht angewendet.
minPathSize float 0.0 Subpaths smaller than the minPathSize will be deleted.

Der Parameter wird von Indesign® Server und comet_pdf nicht angewendet.
inset float 0.0 How far to inset the path. Given in points.

Der Parameter wird von comet_pdf nicht angewendet.
treshold int 255 Schwellenwert im Bereich 0-255.

Der Parameter wird von comet_pdf nicht angewendet.
#include "internal/types.h"
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.

v3.3 R3500, 8 Mar 2013

priint:comet InDesign® Plug-Ins, comet_pdf

frame::image

static int image::count_layers(ItemRef frameRef = 0)

Wieviel Ebenen hat das Bild des Rahmens?

Name Typ Default Beschreibung
Return int   Anzahl der Ebenen im Bild. Seperator-, Absatztrenner- und die sog. Adjustment-Ebenen werden dabei mitgezählt.
frameRef ItemRef 0 Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen
int main ()
{
    int			cl	= image::count_layers (gFrame);
    int			i;
    int			orgvis, curvis;
    char		lname [512];
if (cl == 0) { wlog ("", "# No layers found\n"); return 0; }
for (i = 0; i < cl; i++) { strcpy (lname, image::layername (gFrame, i, &orgvis, &curvis)); wlog ("", "# Layer %d : (%d, %d) '%s'\n",   image::layerindex (gFrame, lname),   orgvis,   curvis,   lname); }
image::show_layer (gFrame, "Maße RU"); return 0; }

Version 3.1 R1849, 5.5.2010

priint:comet InDesign® Plug-Ins

layername
layerindex
show_layers
hide_layers

static char* image::layername(
  ItemRef frameRef,
  int index,
  int* orgVis = 0,
  int* curVis = 0)

Ermittle den Namen einer Bildebene zu einem gegebenen Ebenen-Index.

Name Typ Default Beschreibung
Return char*   Name der Ebene oder leer ("").

Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen.

frameRef ItemRef - Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen
index int - 0-basierter Ebenenindex
orgVis int* 0 Wurde die Ebene gefunden, enthält die Variable nach der Ausführung die Angabe zu aktuellen Sichtbarkeit der Ebene

0 : unsichtbar
1 : sichtbar
2 : kann nicht ermittelt werden
orgVis int* 0 Im Bild eingestellte Sichtbarkeit der Ebene

0 : unsichtbar
1 : sichtbar
2 : kann nicht ermittelt werden
int main ()
{
    int			cl	= image::count_layers (gFrame);
    int			i;
    int			orgvis, curvis;
    char		lname [512];
if (cl == 0) { wlog ("", "# No layers found\n"); return 0; }
for (i = 0; i < cl; i++) { strcpy (lname, image::layername (gFrame, i, &orgvis, &curvis)); wlog ("", "# Layer %d : (%d, %d) '%s'\n",   image::layerindex (gFrame, lname),   orgvis,   curvis,   lname); }
image::show_layer (gFrame, "Maße RU"); return 0; }

Version 3.1 R1849, 5.5.2010

priint:comet InDesign® Plug-Ins

count_layers
layerindex
show_layers
hide_layers

static int image::layerindex(
  ItemRef frameRef,
  char* name,
  int* orgVis = 0,
  int* curVis = 0)

Ermittle den Index einer Bildebene.

Name Typ Default Beschreibung
Return int   0-basierter Ebenenindex oder -1
frameRef ItemRef - Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen
name String oder char* - Name der Ebene
orgVis int* 0 Wurde die Ebene gefunden, enthält die Variable nach der Ausführung die Angabe zu aktuellen Sichtbarkeit der Ebene

0 : unsichtbar
1 : sichtbar
2 : kann nicht ermittelt werden
orgVis int* 0 Im Bild eingestellte Sichtbarkeit der Ebene

0 : unsichtbar
1 : sichtbar
2 : kann nicht ermittelt werden
int main ()
{
    int			cl	= image::count_layers (gFrame);
    int			i;
    int			orgvis, curvis;
    char		lname [512];
if (cl == 0) { wlog ("", "# No layers found\n"); return 0; }
for (i = 0; i < cl; i++) { strcpy (lname, image::layername (gFrame, i, &orgvis, &curvis)); wlog ("", "# Layer %d : (%d, %d) '%s'\n",   image::layerindex (gFrame, lname),   orgvis,   curvis,   lname); }
image::show_layer (gFrame, "Maße RU"); return 0; }

Version 3.1 R1849, 5.5.2010

priint:comet InDesign® Plug-Ins

count_layers
layername
show_layers
hide_layers

static int image::show_layer(
  ItemRef frameRef,
  char* layerName,
  int doShow = 1)

Bildebene sichtbar machen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef 0 Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen
layerName String oder char* 0 Name einer existierenden Bildebene

0 oder "" : Sichtbarkeit der Ebenen wie im Original
doShow int 1 Ebene sichtbar machen oder verstecken? ist der Ebenenname leer, wird diese Angaben ignoriert.

1 : sichtbat machen
0 : verstecken
int main ()
{
    int			cl	= image::count_layers (gFrame);
    int			i;
    int			orgvis, curvis;
    char		lname [512];
if (cl == 0) { wlog ("", "# No layers found\n"); return 0; }
for (i = 0; i < cl; i++) { strcpy (lname, image::layername (gFrame, i, &orgvis, &curvis)); wlog ("", "# Layer %d : (%d, %d) '%s'\n",   image::layerindex (gFrame, lname),   orgvis,   curvis,   lname); }
image::show_layer (gFrame, "Maße RU"); return 0; }

Version 3.1 R1849, 5.5.2010

priint:comet InDesign® Plug-Ins

count_layers
layerindex
layername

static int image::barcode(
  ItemRef gFrame,
  char* text,
  char* type,
  int width = 144,
  int height = 92,
  int xoff = 10,
  int yoff = 10,
  ...)

Erzeuge einen maschinenlesbaren Code (Barcode, EAN, QR-Code, ...), Vom angegebenen Text wird ein Code im gewünschten Format erzeugt und ohne weitere Verknüpfung als Postscript-Bild in den Dokumentrahmen eingebettet. Es werden keine zusätzlichen Bild-Dokumente erzeugt.

Achtung: Direkt eingebettete Postscript-Bildern werden beim IDML-Export/Import von InDesign® verändert:

  1. Eingebettete Postscriptbilder werden beim Import automatisch in Pixelbilder konvertiert. Das konvertierte Bild wird dann in einem neuen Rahmen eingebettet. Dieser Rahmen wird danach als Unterrahmen des ursprünglichen Rahmens angelegt.
  2. Die Pixelbilder haben unter Umständen eine andere Größe als die originalen Postscript-Bilder.
  3. Die Pixelbilder haben (natürlich) eine feste Auflösung. (Die wir aber nicht kennen.)
Sollen Ihre Dokumente IDML-stabil bleiben, müssen die Bilder entweder als normale Datei-Verknüpfungen oder als eingebettete Bilder von Dateien angelegt werden. Die Funktion unterstützt beide Verfahren. Siehe dazu die optionalen Parameter filetype und filepath.

Die Funktion ist ein nice to have und nicht Bestandteil des WERK II Supports.

Bitte prüfen Sie die Codes vor ihrer Verwendung auf Gültigkeit. Falsche Codes können zum Absturz von InDesign® führen! Plugin-seitig werden keine Prüfungen der Barcodes vorgenommen. Ledigllich EAN-13 werden (ab v4.1.6 R25001) auf ihre Gültigkeit geprüft.

Und ein Drittes: comet_pdf verarbeitet nur Rasterbilder. Um die hier erzeugten Postscript-Dateien verwenden zu können, müssen die Dateien von comet_pdf zuerst in PDF konvertiert werden. Dazu benötigt comet_pdf weitere Dritt-Software.

Die Funktion basiert auf der Implementerierung des "Barcode Writer in Pure PostScript" von Terry Burton und unterliegt folgender Lizenz:

Barcode Writer in Pure PostScript http:bwipp.terryburton.co.uk

Copyright (c) 2004-2014 Terry Burton

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Folgende Barcodes können generiert werden :
Codename Skriptbezeichner (type) Beispiel
EAN-5 ean5 90200
EAN-8 ean8 01335583
EAN-8 Composite ean8composite 12345670|(21)A12345678
EAN-13 ean13 9771473968012
EAN-13 Composite ean13composite 331234567890|(99)1234-abcd
EAN-2 ean2 05
QR Code. Bitte beachten Sie auch die weiterführenden Beschreibungen zum QRCode. qrcode Irgendwas
Data Matrix datamatrix This is Data Matrix!
MaxiCode maxicode [\)>^03001^02996152382802¬
^029840^029001^0291Z00004951¬
^029UPSN^02906X610^029159¬
^0291234567^0291/1^029^029Y¬
^029634 ALPHA DR¬
^029PITTSBURGH^029PA^029^004
Aztec Code azteccode This is Aztec Code
UPC-A upca 78858101497
UPC-A Composite upcacomposite 01600033610|(99)1234-abcd
UPC-E upce 0123456
UPC-E Composite upcecomposite 0121230|(15)021231
ISBN isbn 978-1-56592-4796 54495
ISMN ismn 979-0-2600-0043
ISSN issn 0317-8471 00 05
Code One codeone Das ist eine Nachricht!
Code 16K code16k Abcd-1234567890-wxyZ
Code 39 code39 THIS IS CODE 39
Code 39 Extended code39ext Code39 Ext!
Code 128 code128 Count01234567^FNC2!
Code 49 code49 MULTIPLE ROWS IN CODE 49
GS1-14 ean14 (01)04601234567893
GS1 Composite 2D Component gs1-cc (01)95012345678903(3103)000123
GS1 Data Matrix gs1datamatrix (01)03453120000011(17)120508(10)¬
ABCD1234(410)9501101020917
GS1-128 gs1-128 (01)95012345678903(3103)000123
GS1-128 Composite gs1-128composite (00)030123456789012340|(02)130¬
12345678909(37)24¬
(10)1234567ABCDEFG
GS1 DataBar Omnidirectional databaromni (01)24012345678905
GS1 DataBar Omnidirectional Composite databaromnicomposite (01)03612345678904|(11)990102
GS1 DataBar Stacked databarstacked (01)24012345678905
GS1 DataBar Stacked Composite databarstackedcomposite (01)03412345678900|(17)010200
GS1 DataBar Stacked Omnidirectional databarstackedomni (01)24012345678905
GS1 DataBar Stacked Omnidirectional Composite databarstackedomnicomposite (01)03612345678904|(11)990102
GS1 DataBar Truncated databartruncated (01)24012345678905
GS1 DataBar Truncated Composite databartruncatedcomposite (01)03612345678904|(11)990102
GS1 DataBar Limited databarlimited (01)15012345678907
GS1 DataBar Limited Composite databarlimitedcomposite (01)03512345678907|(21)abcdefghijklmnopqrstuv
GS1 DataBar Expanded databarexpanded (01)95012345678903(3103)000123
GS1 DataBar Expanded Composite databarexpandedcomposite (01)93712345678904(3103)¬
001234|(91)1A2B3C4D5E
GS1 DataBar Expanded Stacked databarexpandedstacked (01)95012345678903(3103)000123
GS1 DataBar Expanded Stacked Composite databarexpandedstackedcomposite (01)00012345678905(10)¬
ABCDEF|(21)12345678
SSCC-18 sscc18 (00)006141411234567890
Italian PharmaCode code32 01234567
Pharmazentralnummer pzn 123456
Interleaved 2 of 5 (ITF) interleaved2of5 2401234567
ITF-14 itf14 04601234567893
Pharmaceutical Binary Code pharmacode 117480
Two-track Pharmacode pharmacode2 117480
Code 25 code2of5 01234567
Code 11 code11 0123456789
BC412 bc412 BC412
Rationalized Codabar rationalizedCodabar A0123456789B
Deutsche Post Identcode identcode 563102430313
Deutsche Post Leitcode leitcode 21348075016401
United States Postal Service Intelligent Mail onecode 0123456709498765432101234567891
United States Postal Service POSTNET postnet 01234
United States Postal Service PLANET planet 01234567890
Royal Mail 4 State Customer Code (RM4SCC) royalmail LE28HS9Z
AusPost 4 State Customer Code auspost 5956439111ABA 9
Royal Dutch TPG Post KIX 4-State Barcode kix 1231FZ13XHS
Japan Post 4 State Customer Code japanpost 6540123789-A-K-Z
MSI Modified Plessey msi 0123456789
Plessey UK plessey 01234ABCD
Telepen telepen 123456
PosiCode posicode ABC123
Codablock F codablockf CODABLOCK F 34567890¬
123456789010040digit
Channel Code channelcode 3493
Flattermarken flattermarken 12345
Raw bar space succession for custom symbologies raw 331132131313411122¬
131311333213114131131221323
Raw DAFT succession for custom 4 state symbologies daft FATDAFTDAD
Miscellaneous symbols symbol fima
PDF417 pdf417 This is PDF417
MicroPDF417 micropdf417 MicroPDF417
HIBC Code 39 hibccode39 A123BJC5D6E71
HIBC Code 128 hibccode128 A123BJC5D6E71
HIBC Data Matrix hibcdatamatrix A123BJC5D6E71
HIBC PDF417 hibcpdf417 A123BJC5D6E71
HIBC MicroPDF417 hibcmicropdf417 A123BJC5D6E71
HIBC QR Code hibcqrcode A123BJC5D6E71
HIBC Codablock F hibccodablockf A123BJC5D6E71

QRCodes werden größer, je mehr Daten sie enthalten. Es können Strings bis zu einer Länge von 2953 Bytes (nicht Zeichen!) kodiert werden. Um eine feste Größe von QRCodes zu erhalten, können die Codes mit einer Versionsnummer (siehe Version) generiert werden. Erlaubt sind Versionsnummern von 1-40. Die Größe der Codes ergibt sich daraus wie folgt:

Größe des Quadrats = 17 + (Version * 4) Module

Ein QRCode Version 1 ist also ein Quadrat aus 21 x 21 Modulen, Version 2 ist 25 x 25 groß, usw.. Der größte QRCode ist also 177 x 177 Module groß.

Standardmäßig werden die Module als 2pt-große Quadrate erzeugt. Ein Ein QRCode Version 1 ist also 42 pt groß.

QRCodes können mit einer Fehlerkorrektur versehen werden (Parameter eclevel, siehe unten). Durch die Fehlerkorrektur kann sich die Anzahl der kodierten Zeichen weiter verringern. Die folgenden Tabelle zeigen Ihnen, wieviel Zeichen maximal kodiert werden können:
Fehlerkorrektur Low, 7% Verlust können korrigiert werden
Version Maximale Bytes
1-10 17, 32, 53, 78, 106, 134, 154, 192, 230, 271
11-20 321, 367, 425, 458, 520, 586, 644, 718, 792, 858
21-30 929, 1003, 1091, 1171, 1273, 1367, 1465, 1528, 1628, 1732
31-40 1840, 1952, 2068, 2188, 2303, 2431, 2563, 2699, 2809, 2953
Fehlerkorrektur Medium, 15% Verlust können korrigiert werden
Version Maximale Bytes
1-10 14, 26, 42, 62, 84, 106, 122, 152, 180, 213
11-20 251, 287, 331, 362, 412, 450, 504, 560, 624, 666
21-30 711, 779, 857, 911, 997, 1059, 1125, 1190, 1264, 1370
31-40 1452, 1538, 1628, 1722, 1809, 1911, 1989, 2099, 2213, 2331
Fehlerkorrektur High, 20% Verlust können korrigiert werden
Version Maximale Bytes
1-10 11, 20, 32, 46, 60, 74, 86, 108, 130, 151,
11-20 177, 203, 241, 258, 292, 322, 364, 394, 442, 482
21-30 509, 565, 611, 661, 715, 751, 805, 868, 908, 982
31-40 1030, 1112, 1168, 1228, 1283, 1351, 1423, 1499, 1579, 1663
Fehlerkorrektur Quality, 30% Verlust können korrigiert werden
Version Maximale Bytes
1-10 7, 14, 24, 34, 44, 58, 64, 84, 98, 119
11-20 137, 155, 177, 194, 220, 250, 280, 310, 338, 382
21-30 403, 439, 461, 511, 535, 593, 625, 658, 698, 742
31-40 790, 842, 898, 958, 983, 1051, 1093, 1139, 1219, 1273

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Bildrahmenreferenz

0 : aktueller Skriptrahmen
text String oder char* - Zu codierender Text. Beispiele für gültige Codes finden Sie hier.. Klammern und Backslashes im Text werden automatisch kodiert. Weitere Kodierungen siehe hier.
type String oder char* - Code-Typ, siehe hier.
width, height int, int 144, 92 Größe der Ausgabefläche. Der erzeugte Code wird links unten in dieser Fläche platziert. Zu kleine Werte können den Code oben und rechts abschneiden, zu große Werte erzeugen Weißraum.

Die Anzahl der Module (der kleinen Quadrate des Codes) hängt von der Länge des codierten Textes ab. Hier finden Sie dazu weitere Infos:

xoff, yoff int, int 10, 10 Abstand des Codes von der linken unteren Bildecke. Die Angaben beschreiben die Position des eigentlichen Codes. Zusätzliche Textangaben könne unterhalb und links dieser Position erscheinen. Auch hier müssen Sie unter Umständen ein wenig experimentieren, bis Sie die richtigen Angaben gefunden haben.
... ... leer Optionale Parameter als Key/Value-Paare mit Angaben zur Gestaltung des erzeugten Codes.

Die folgende Tabelle beschreibt alle Optionen zur Gestaltung des erzeugten Codes. Bitte beachten Sie, dass nicht alle Optionen für jedes Code-Format sinnvoll sind. Nicht unterstützte Optionen werden ignoriert.

Bitte beachten Sie außerdem, dass auch für alle im Folgenden beschriebenen Optionen die oben zitierten Lizenzeinschränkungen gelten: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND ...

Die Option includetext ist defaultmäßig immer aktiviert. Alle anderen Optionen verwenden den Standard des jeweiligen Codes.

Key Wert Beschreibung
includecheck 0 | 1 Generate check digit(s) for symbologies where the use of check digits is optional.
includecheckintext 0 | 1 Show the calculated check digit in the human readable text.
parse 0 | 1 In supporting barcode symbologies, when the parse option is specified, any instances of ^NNN in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.
parsefnc 0 | 1 In supporting barcode symbologies, when the parsefnc option is specified, non-data function characters can be specified by escaped combinations such as ^FNC1, ^FNC4 and ^SFT/.
includetext 0 | 1 Show human readable text for data in symbol. If a character in the data does not have a printable representation then it is not displayed.
suppresstext 0 | 1 Disable showing human readable text for data in symbol.
width float Stretch the symbol to precisely this width, in inches.
height float Height of longest bar, in inches.
inkspread float Amount by which to reduce the bar widths to compensate for inkspread, in points. Negative values will increase the bar width.
textfont String or char* The font name for text. The font name must be the literal name of a PostScript font that is available to the system. This option should be used in combination with the includetext option.
textsize float The font size of the text in points. This option should be used in combination with the includetext option.
textgaps float The inter-character spacing of the text. This option should be used in combination with the textxalign option.
textxalign String or char* The textxalign option is used to specify where to horizontally position the text. The following values are supported:
  • offleft
  • left
  • center
  • right
  • offright
  • justify
textyalign String or char* The textyalign option is used to specify where to vertically position the text. The following values are supported:
  • below
  • center
  • above
textxoffset float The horizontal position of the text in points relative to the default position.
textyoffset float The vertical position of the text in points relative to the default position.
showborder 0 | 1 Display a border around the symbol of the specified width with the specified margin gap, in points.
borderwidth
borderleft
bordertop
borderright
borderbottom
float Display a border around the symbol of the specified width with the specified margin gap, in points. These options should be used in combination with the showborder option.
barcolor
backgroundcolor
bordercolor
textcolor
String or char* Color of the respective component, either as a hex RRGGBB value or a hex CCMMYYKK value.
addontextfont String or char* The font name of the add on text in points. The font name must be the literal name of a PostScript available font. This option should be used in combination with the includetext option.
addontextsize float The font size of the add on text in points. This option should be used in combination with the includetext option.
addontextxoffset
addontextyoffset
float Overrides the default positioning algorithm for the add on text. Values in points.
guardwhitespace 0 | 1 The guardwhitespace option enables the display of whitespace guard marks.
guardwidth
guardheight
float Display white space guards of the specified width and height, in points. Usually the encoder specific default value of guardwidth and guardheight are sufficient. These options should be used in combination with the guardwhitespace option.
guardleftpos
guardrightpos
guardleftypos
guardrightypos
float Amount of white space to guard to left and right of the symbol and vertical position of the guard symbols, in points. The encoder specific default value of each of these parameters is normally sufficient. These options should be used in combination with the guardwhitespace option.
options String or char* Der Einfachheit halber können Sie auch alle in der Tabelle beschriebenen Optionen in einem einzigen String in folgender Form angeben:
  • Bei Boolean-Werten (also Schlüsseln mit den Werten 0 oder 1) geben Sie einfach den Schlüssel an.
  • Alle anderen Werte werden im Format option=value angegeben.
  • Mehrere Angaben werden jeweils durch ein Leerzeichen getrennt.

Zeige einen benutzerdefinierten Rahmen um einen Barcode.

"options",
"showborder borderwidth=2 borderbottom=8"
filetype String or char* Nicht comet_pdf. IDML-sicheres Einbetten des erzeugten Barcodes. Folgende Werte sind möglich:
  • "ps" : Im Rahmen wird der Verweis auf die Bilddatei eingebettet, nicht deren Inhalt. Die PS-Datei wird danach nicht mehr benötigt und gelöscht. In der Palette Verknüpfungen bleibt aber der "Eingebettet"-Eintrag auf die PS-Datei stehen.
  • "jpg", "tif", "gif" : Im Rahmen wird der Inhalt der Bilddatei eingebettet. Es entsteht kein weiterer Eintrag in der Palette Verknüpfungen, aber die Bilder haben natürlich nur noch eine feste Auflösung. Die Auflösung kann im Parameter resolution festgelegt werden.
filepath String or char* Nicht comet_pdf. Vollständiger Pfad einer Ausgabedatei. Die Pfade dürfen mit einem definierten $-Alias beginnen. Der erzeugte Barcode wird als Datei gespeichert und im Dokument verlinkt. Die Dateiauflösung (außer natürlich bei Postscript) ergibt sich aus dem Parameter resolution. Das Dateiformat wird aus der Dateiendung ermittelt.

Folgende Werte sind möglich: "ps", "jpg", "tif", "gif".
resolution float Nicht comet_pdf. Auflösung des erzeugten GIF/TIF/JPG-Bildes. Fehlt die Angabe, werden Bilder von 600 dpi erzeugt. Die Angabe wird ignoriert, wenn Postscript eingebettet oder verlinkt wird. Die Angabe wird nur ausgwertet, wenn entweder filepath oder filetype definiert ist.

Für gleichgroße orange QRCodes mit URLs von maximal 100 Zeichen Länge und einer Fehlerkorrektur von 7% benötigen Sie fogenden Angaben (74 = 2 * (17 + 5 * 4)):

image::barcode (gFrame,
    "your URL", "qrcode",
    74, 74, 0, 0,
    "options", "version=5 eclevel=L barcolor=FF8800",
    "filetype", "ps");

Hier ein EAN 13-Code ohne Beschriftung:

image::barcode (gFrame,
    "9771473968012", "ean13",
    144, 92, 0, 0,
    "options", "suppresstext",
    "filetype", "ps");

v3.3 R2688, 28.10.2011
Schlüssel "options", "filetype", "filepath" und "resoltion" seit v4.0.5 R11812, 21. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

comet.CFrame.setBarcode

static int image::qrcode(
  ItemRef gFrame,
  int type,
  ItemRef colorRef,
  char* content1,
  char* content2 = 0,
  char* content3 = 0,
  char* content4 = 0,
  char* content5 = 0,
  char* content6 = 0,
  char* content7 = 0,
  char* content8 = 0,
  char* content9 = 0,
  char* content10 = 0,
  char* content11 = 0,
  char* content12 = 0,
  char* content13 = 0)

Erzeuge eine QR-Code. Die Anweisung entspricht dem Menü Objekt -> QR-Code generieren.... Zusätzlich kann, anders als im Menübefehl, ein geänderter QR-Code an die Rahmengröße angepasst werden.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz

0 : aktueller Skriptrahmen
type int - Typ des QR-Codes. Mit negativen Werten wird der erzeugte Code an die Rahmengröße angepaßt und im Rahmen zentriert.

±kQRCodeText = 1 : Normaler QR-Code
±kQRCodeEmail = 2 : EMail
±kQRCodeHyperlink = 3 : Hyperlink
±kQRCodeSMS = 4 : SMS
±kQRCodeVCard = 5 : Visitenkarte
colorRef ItemRef - Farbe des QR-Codes

0 : Schwarz
sonst : mit color::define u.ä erhaltene Referenz auf eine Dokumentfarbe
content1-13 char* oder String 0 Textinhalt des QR-Codes. Der erste Inhaltsstring darf nicht leer sein! Die Anzahl der benötigten Strings hängt vom Typ des QR-Codes ab.

kQRCodeText
   content1 Text des Codes

kQRCodeEmail
   content1 EMail-Adresse
   content2 Betreff
   content3 Nachricht

kQRCodeHyperlink
   content1 Hyperlink

kQRCodeSMS
   content1 Telefonnummer
   content2 Nachricht

kQRCodeVCard
   content1 Vorname
   content2 Nachname
   content3 Titel
   content4 Telefonnummer
   content5 Handy
   content6 E-Mail
   content7 URL
   content8 Unternehmen
   content9 Adresse
   content10 Stadt
   content11 Bundesland
   content12 Postleitzahl
   content13 Land
#include "internal/types.h"

Erzeuge den QR-Code einer Visitenkarte (kQRCodeVCard) und lese deren Inhalt aus dem erzeugten Bild wieder ein.

#include "internal/type.h"
int main () { ItemRef orange = item::alloc (); String firstname = string::alloc (); String lastname = string::alloc (); String country = string::alloc (); String zip = string::alloc (); String city = string::alloc (); String vcard;
color::define_rgb ("Orange", 255, 128, 10, 1, orange); image::qrcode (gFrame, -kQRCodeVCard, orange,   "Paul", // First name   "Seidel", // Last name   0, // Job title   0, // Tel no   0, // Cell no   "paul@priint.com", // email   "priint.com", // web site   "WERK II GmbH", // organization   "Ruth-Marx-Str. 9", // street   "Tübingen", // city   "Baden-Württemberg", // state   "72072", // zip   "D"); // country
wlog ("", "# Type : %d\n", image::qrcode_gettype (gFrame)); vcard = image::qrcode_getcontent (gFrame,   firstname,   lastname,   0,   0,   0,   0,   0,   0,   0,   city,   0,   zip,   country);
wlog ("", "# %s %s : %s-%s %s\n", firstname, lastname, country, zip, string::upper (city)); wlog ("", "# %s\n", vcard);
return 0; }

v4.1.8 R27646, 20. Okt. 2020

priint:comet InDesign® Plug-Ins

qrcode_gettype
qrcode_getcontent
frame::is_qrcode

static int image::qrcode_gettype(ItemRef gFrame)

Typ eines QR-Codes. Ermittle den Typ eines QR-Codes.

Name Typ Default Beschreibung
Return int   Typ des QR-Codes

0 : Kein QR-Code oder Fehler

1 (kQRCodeText) : Text
2 (kQRCodeEmail) : EMail
3 (kQRCodeHyperlink) : Hyperlink
4 (kQRCodeSMS) : SMS
5 (kQRCodeVCard) : Visitenkarte
frameRef ItemRef - Gültige Rahmenreferenz

0 : Aktueller Skriptrahmen
#include "internal/types.h"

v4.1.8 R27646, 20. Okt. 2020

priint:comet InDesign® Plug-Ins

qrcode
qrcode_getcontent
frame::is_qrcode

static char* image::qrcode_getcontent(
  ItemRef gFrame,
  char* content1 = 0,
  char* content2 = 0,
  char* content3 = 0,
  char* content4 = 0,
  char* content5 = 0,
  char* content6 = 0,
  char* content7 = 0,
  char* content8 = 0,
  char* content9 = 0,
  char* content10 = 0,
  char* content11 = 0,
  char* content12 = 0,
  char* content13 = 0)

Textinhalt eines QR-Codes. Ermittle den vom QR-Code kodierten Text.

Name Typ Default Beschreibung
Return char*   Gesamter Textinhalt des QR-Codes.

Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen.

frameRef ItemRef - Gültige Rahmenreferenz

0 : Aktueller Skriptrahmen
content1-13 char* oder String 0 Textteile des QR-Codes. Die Rückgabewerte hängen vom Typ des QR-Code ab.

kQRCodeText
   content1 Text des Codes

kQRCodeEmail
   content1 EMail-Adresse
   content2 Betreff
   content3 Nachricht

kQRCodeHyperlink
   content1 Hyperlink

kQRCodeSMS
   content1 Telefonnummer
   content2 Nachricht

kQRCodeVCard
   content1 Vorname
   content2 Nachname
   content3 Titel
   content4 Telefonnummer
   content5 Handy
   content6 E-Mail
   content7 URL
   content8 Unternehmen
   content9 Adresse
   content10 Stadt
   content11 Bundesland
   content12 Postleitzahl
   content13 Land
#include "internal/types.h"
#include "internal/type.h"
int main () { ItemRef orange = item::alloc (); String firstname = string::alloc (); String lastname = string::alloc (); String country = string::alloc (); String zip = string::alloc (); String city = string::alloc (); String vcard;
color::define_rgb ("Orange", 255, 128, 10, 1, orange); image::qrcode (gFrame, -kQRCodeVCard, orange,   "Paul", // First name   "Seidel", // Last name   0, // Job title   0, // Tel no   0, // Cell no   "paul@priint.com", // email   "priint.com", // web site   "WERK II GmbH", // organization   "Ruth-Marx-Str. 9", // street   "Tübingen", // city   "Baden-Württemberg", // state   "72072", // zip   "D"); // country
wlog ("", "# Type : %d\n", image::qrcode_gettype (gFrame)); vcard = image::qrcode_getcontent (gFrame,   firstname,   lastname,   0,   0,   0,   0,   0,   0,   0,   city,   0,   zip,   country);
wlog ("", "# %s %s : %s-%s %s\n", firstname, lastname, country, zip, string::upper (city)); wlog ("", "# %s\n", vcard);
return 0; }

v4.1.8 R27646, 20. Okt. 2020

priint:comet InDesign® Plug-Ins

qrcode
qrcode_getcontent
frame::is_qrcode

Preconditions
#include "internal/types.h"

Das Beispiel beschreibt die Verwendung von Freistellpfaden.

#include "internal/types.h"
int showpaths (ItemRef frameRef) { int count = image::count_paths (gFrame); int i;
showmessage ("Verfügbare Pfade %d", count); for (i = 0; i < count; i++) { showmessage ("%d. %s", i, image::pathname (gFrame, i)); }
return 0; }
int main () { int index = image::clipindex (gFrame); int count = image::count_paths (gFrame); int err;
// Mögliche Freistellpfade zeigen if (count <= 0) return 0; else showpaths (gFrame);
// Aktuellen Freistellpfad zeigen if (index < 0) { index = -1; showmessage ("Kein Pfad gesetzt"); } else showmessage ("Gesetzter Pfad %d : %s",   index+1,   image::pathname (gFrame, index));
// Neuen Freistellpfad setzen if (index == count -1) index = -1; else index = (index + 1) % count; err = image::setclip (   gFrame,   index,   kAllowHolesFlag,   0, 0.0, 0.0); if (err) showerror ("setclip Fehler : %d", err);
return 0; }

Seit
Plugin Version 1.0.10
Letzte Änderung
30.07.2025, 07:35 Uhr
Autor
Paul Seidel

Alphabetic index HTML hierarchy of classes or Java