ドキュメントの印刷 |
ドキュメントの印刷に必要な値のセットは、Print Portal Swagger UI の AutomatedPrint 見出しで確認できます。
API の印刷関数を説明するために、Swagger UI を使用して、ファイル名、プリンタ、部数、および印刷に必要なデータを含む JSON データを送信します。
データ入力フォームが必要ないシンプルなドキュメントを印刷するには
最初の印刷要求では、フォームデータが関連付けられていないドキュメントを使用します。Librarian ドキュメントの名前は Document1.btw です。ライブラリ ID は、「ライブラリの列挙」チュートリアルステップの手順で取得できます。相対パスがファイル名です。ファイルがサブフォルダ内にある場合、相対パスには、"Production/Document2.btw" のようにサブフォルダ名が含まれます。ここで、"Production" はサブフォルダの名前です。印刷要求を簡素化してルートフォルダ要素を排除し、ファイルの絶対パスを定義することもできます (最初の JavaScript の例および以下を参照してください)。
{
"AbsolutePath":"c:\\inetpub\\wwwroot\\BarTender\\Templates\\Document1.btw",
"Printer":"PDF",
"Copies":2,
}
上記のクエリから使用可能なプリンタのリストを取得します。この例では、説明の目的で PDF プリンタを使用します。
結果の JSON データは、ファイル、その親ルートフォルダ、プリンタ、および部数を示します。
{
"libraryID":"de6940a6-ff73-465b-aaf2-d39504420fa6",
"relativePath":"Document1.btw",
"printer":"PDF",
"copies":1
}
"de6940a6-ff73-465b-aaf2-d39504420fa6" の部分は実際の Librarian ID で置き換えます。
プリンタに直接出力する場合は、"PDF" の部分を接続されている有効なプリンタに変更します。
フォームデータが関連付けられているドキュメント (TLC39 Laser_53_rf など) の場合、ライブラリ ID 要求戻りデータを使用してドキュメントおよびフォルダデータを取得します (「ライブラリの列挙」および「ライブラリ項目の列挙」を参照してください)。必要なフォームデータは、インストールされている Print Portal、Templates フォルダ、Telecommunications サブフォルダ、およびその TLC 39 サブフォルダを参照して TLC39 Laser_53_rf を印刷することで取得します。[印刷] を選択すると、次のようにフォーム要件およびフォームの既定のデータが表示されます。
シリアル番号:GRINGS00102028974810
ECI:663726
CLEI:C5JAB3H1AA
国:US
フォームデータを含むファイルでは、2 つの API 処理が必要です。必要な "printRequestID" を含むエラーメッセージを取得するために最初の要求を送信する必要があります。最初の TLC39 Laser_53_rf およびそのフォームデータ要求は次のようになります。
{
"libraryID":"de6940a6-ff73-465b-aaf2-d39504420fa6",
"relativePath":"TLC39 Laser_53_rf.btw",
"printer":"PDF",
"copies":1,
"DataEntryControls":{
"Text Input Box 1":"GRINGS00102028974810",
"Text Input Box 2":"663726",
"Text Input Box 3":"C5JAB3H1AA",
"Text Input Box 4":"US"
}
}
上記の例では、"de6940a6-ff73-465b-aaf2-d39504420fa6" の部分を実際の Librarian ID で置き換えます。
応答は、必要な "printRequestID” を含むエラーです。"printRequestID" をコピーして、JSON データに追加します。"printRequestID" を含む最終的な JSON オブジェクトは次のようになります。
{
"libraryID":"de6940a6-ff73-465b-aaf2-d39504420fa6",
"relativePath":"TLC39 Laser_53_rf.btw",
"printRequestID":"c1cec9ba-1c42-4a74-93e1-96ecf235c403",
"printer":"PDF",
"copies":1,
"DataEntryControls":{
"Text Input Box 1":"GRINGS00102028974810",
"Text Input Box 2":"663726",
"Text Input Box 3":"C5JAB3H1AA",
"Text Input Box 4":"US"
}
}
"de6940a6-ff73-465b-aaf2-d39504420fa6" の部分は実際の Librarian ID で置き換えます。
"printRequestID" は実際の "printRequestID" で置き換えます。
上記の内容を送信すると、PDF のパスを含む応答が得られます。
JavaScript の例:最小データを含むシンプルなドキュメントの印刷
/* ----------------------------------------------------------------------
This example demonstrates how to print a file with no data entry form using as little data as
possible such as the absolute path where the file is located,
the printer used (in this case is a PDF printer) and the number of copies
*/
// Change this to the URL, library ID, and document path that you want to print
let basePrintPortalURL = "https://example.com/Bartender/";
fetch(basePrintPortalURL + 'print', {
method: 'post',
headers: {
'Content-Type': 'application/json',
// If authentication is enabled the header requires "'Authorization': 'Bearer ' + token" to be used
},
body: JSON.stringify({
"AbsolutePath": "c:\\inetpub\\wwwroot\\BarTender\\Templates\\Document1.btw",
"Printer": "PDF",
"Copies": 2
})
})
.then(response => response.json())
.then(result => {
console.log(result);
// If successful, the pdf file path is displayed
console.log(result.filePath);
// The printRequestID is used to continue the print job in case of a fail request
console.log(result.printRequestID);
// If not successful, an error message will be displayed stating the reason why.
console.log(result.error);
// Displays the status code of the error message
console.log(result.statusCode);
})
.catch(error => {
//The error message 'Failed to fetch' will be displayed in case there is an issue with the request
console.error('There has been a problem with your fetch operation: ', error.message);
});
JavaScript の例:1 つのデータ入力フォームを含むドキュメントの印刷
/*-------------------------------------------------------------------------------------------
Printing a file with a single data entry form and PDF printer */
// Change these to the URL, library ID, and document path that you want to print
let basePrintPortalURL = "https://example.com/Bartender/";
//let token = "token_value_from_authentication_call";
// Process our print job
fetch(basePrintPortalURL + 'print', {
method: 'post',
headers: {
'Content-Type': 'application/json',
// Make sure we add our authentication header to the print request using the token from previous example
//'Authorization': 'Bearer ' + token
},
body: JSON.stringify({
"AbsolutePath": "c:\\inetpub\\wwwroot\\BarTender\\wwwroot\\Templates\\Telecommunications/TLC 39/TLC39 Laser_53_rf.btw",
"Printer": "PDF",
"Copies": 2,
"SerialNumbers": 4,
"DataEntryControls": {
"Text Input Box 4": "US",
"Text Input Box 3": "C5JAB3H1AA",
"Text Input Box 2": "663726",
"Text Input Box 1": "GRINGS00102028974810" }
})
.then(response => response.json())
.then(result => {
console.log(result);
// The printRequestID is used to continue the print job in case of a fail request
console.log(result.printRequestID);
// Specify the data entry fields required to print the label
console.log(result.requiredDataEntryControls);
// If successful, a path of the result pdf lcation should display
console.log(result.filePath);
// For physical printers, displays a message "BarTender successfully sent the print job to the spooler."
console.log(result.messages);
// If not successful, an error message will be displayed stating the reason why.
console.log(result.error);
// Displays the status code of the error message
console.log(result.statusCode);
})
.catch(error => {
console.error('There has been a problem with your fetch operation: ', error.message);
});
JavaScript の例:複数のデータ入力フォームおよび認証が関連付けられたドキュメントの印刷
/*----------------------------------------------------------------------
multiple data entry forms and authentication
*/
let basePrintPortalURL = "https://example.com/Bartender/";
let token = "token_value_from_authentication_call";
fetch(basePrintPortalURL + 'print', {
method: 'post',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token
},
body: JSON.stringify({
"LibraryID": "9890beae-db51-4b74-a132-d6430a06a192",
"Relativepath": "Document1.btw",
"printer": "PDF",
"copies": 1,
"DataEntryControls": {
"Text Input Box 2": "Seattle, WA",
"Text Input Box 1": "Jon Smith",
"Date Picker 1": "2020-07-17 00:00:00Z",
"Text Input Box 3": "Developer",
"Text Input Box 5": "35 years",
"Text Input Box 4": "Microsoft"
}
})
})
.then(response => response.json())
.then(result => {
console.log(result);
// The printRequestID is used to continue the print job in case of a fail request
console.log(result.printRequestID);
// Specify the data entry fields required to print the label
console.log(result.requiredDataEntryControls);
// If successful, a path of the result pdf lcation should display
console.log(result.filePath);
// For physical printers, displays a message "BarTender successfully sent the print job to the spooler."
console.log(result.messages);
//If not successful, an error message will be displayed stating the reason why.
console.log(result.error);
//Displays the status code of the error message
console.log(result.statusCode);
})
.catch(error => {
console.error('There has been a problem with your fetch operation: ', error.message);
});
JavaScript の例:相対パスおよびライブラリ ID を指定したドキュメントの印刷
/*--------------------------------------------------------------------------------------------
Printing a file specifying the root folder ID and relative path
This document has no data entry form */
let basePrintPortalURL = "https://example.com/Bartender/";
let token = "token_value_from_authentication_call";
fetch(basePrintPortalURL + 'print', {
method: 'post',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token
},
body: JSON.stringify({
"LibraryID": "9890beae-db51-4b74-a132-d6430a06a192",
"Relativepath": "Document1.btw",
"Printer": "Zebra GX430d - ZPL",
"Copies": 2,
})
})
.then(response => response.json())
.then(result => {
console.log(result);
// The printRequestID is used to continue the print job in case of a fail request
console.log(result.printRequestID);
// Specify the data entry fields required to print the label
console.log(result.requiredDataEntryControls);
// For physical printers, displays a message "BarTender successfully sent the print job to the spooler."
console.log(result.messages);
// If not successful, an error message will be displayed, ""
console.log(result.error);
// Displays the status code of the error message
console.log(result.statusCode);
})
.catch(error => {
console.error('There has been a problem with your fetch operation: ', error.message);
});