Quark XPress Server 8.0 Web Integration Guide QXPS 80 WIG Win
User Manual: quark QuarkXPress Server - 8.0 - Web Integration Guide Free User Guide for QuarkXPress Software, Manual
Open the PDF directly: View PDF .
Page Count: 304
Download | |
Open PDF In Browser | View PDF |
Overview Welcome to the QuarkXPress® Server Web Integration Guide (WIG). The WIG describes the QuarkXPress Server interface and includes sample applications that demonstrate how to build a solution that integrates with QuarkXPress Server or QuarkXPress Server Manager. Supported interfaces The WIG describes two separate interfaces: HTTP: Provides the ability to interact with the server using URLs that contain calls or point to XML files that contain calls. Client applications can be written in any language that supports HTTP requests. Web services: Provides the ability to interact with the server via Web services using the QuarkXPress Server Manager object model. Client applications can be written in Java™, .NET, or any other programming language that can consume SOAP-based Web services. Note: If you want to develop a custom load balancer or a custom application in Java using the WIG Object Model, JDK™ 1.5 is required. Note: If you want to use Web Objects in ASP.NET / Visual C#®, the .NET 1.1/2.0 framework with development environment (Visual Studio®) is required. The Dynamic Publishing Process (DPP) Dynamic Publishing Process (DPP) is the process in which QuarkXPress Server opens a project, loads content, modifies a layout, examines the project, converts data into a particular render type, and then closes the project. The process has the following different stages: Pre-Processing Stage: During this stage an initial setup of the project is done, such as create style sheets, color, or H&J rules. Content Loading Stage: During this stage dynamic content is loaded into the boxes in the QuarkXPress project. Layout Modification Stage: QuarkXPress Server modifies the layout of the project during this stage. For example, QuarkXPress Server changes the angle of the boxes by 30 degrees. Post-Processing Stage: In this stage no modifications to the project are made. QuarkXPress Server examines the constructed project and performs bookkeeping tasks. WIG vs. XTensions® Developer Kit (XDK) The WIG allows Web developers to build client-side applications that use the features available in QuarkXPress Server. The XDK allows software developers to implement features that are not available in QuarkXPress Server, such as server-side processing and application-specific services. Note that the Page 1 QuarkXPress Server XDK requires knowledge of C or C++. Where do I go from here? For an introduction to writing applications with the HTTP interface, see the Getting started: HTTP page. For an introduction to writing applications with the Web services interface, see the Getting started: Web services page. Page 2 N ew and enhanced features in QuarkXPress Server 8 QuarkXPress Server 8 includes a number of new and improved features. This section lists those new or enhanced features that affect the WIG. Rubi text support Rubi text clarifies the meaning or pronunciation of base text and is commonly used in Japanese typography. Base text can run vertically or horizontally, and rubi text usually follows the direction of the base text. Modifier SXT now supports the deconstruction and modification of rubi text constructed in QuarkXPress 8 and construction of new rubi text in document construction and modification. Note that rubi text present in a project can't be modified. An element named RUBI has been added to the Modifier DTD, as a sibling to RICHTEXT, allowing the characteristics of rubi text to be specified. If Annotation is set to true for rubi text, original glyphs in rubi are replaced from the equivalent annotation glyph in the font (if font supports annotation or there is no change). For details about this element, see The Annotated Modifier DTD . Support for font sets Font sets let you control how different types of characters — such as alphabetic (Roman) and Han characters — display when they occur together in text. You can create a new font set in the QuarkXPress 8 Edit Font Set dialog box ( Edit > Font Sets > New). Each font set is composed of a set of font types, each of which has its own settings. Modifier SXT now supports font sets applied to text in QuarkXPress on deconstructing a document using the “XML” render type, and when modifying (or constructing) a document using Modifier XML. Note that you can't modify the fontset created in a project, and you can't modify the fontset applied on saved text in a project. FONTSET is added as a RICHTEXT attribute in the Modifier DTD. Support for double strikethrough QuarkXPress 8 adds the new text formatting option double strikethrough. It is supported as an attribute of the RICHTEXT element in Modifier XML. Support for emphasis marks QuarkXPress 8 adds the capability to add emphasis marks as a text attribute to text. Modifier SXT now supports QuarkXPress 8 emphasis marks as an attribute to the RICHTEXT element. Story direction In QuarkXPress 8, you can position text so that it runs left-to-right and top-tobottom or top-to-bottom and right-to-left. In Modifier XML, the story direction can be specified through the TEXT@STORYDIRECTION attribute. Page 3 Sending support Sending lets you fix the distance between the left edges of successive character bounding boxes in horizontal text, or the top edges of successive character bounding boxes in vertical text. You can apply sending in QuarkXPress by selecting text and entering an explicit measurement (such as 2mm or 8q) in the Track Amount field in the Classic or Character Attributes tab of the Measurements palette. Sending is now also supported in Modifier SXT as an attribute of RICHTEXT (similar to the implementation of tracking support). Grouped character support The Grouped Character feature can be used to include a group of horizontal characters, such as Roman characters, within a vertical line of text. Grouped characters always display horizontally and do not break at the end of a line. The GROUPCHARACTERS element specifies one or more RICHTEXT (or HIDDEN text) elements to be grouped together in the text flow. You can specify the scale and sending of the grouped text characters as attributes to this element. Support for new OpenType text styles You can apply an OpenType(R) style to characters to display different, specially designed, or repositioned glyphs within the current font. For example, you can apply Fractions to access specific fraction glyphs instead of manually formatting fractions by resizing and repositioning existing characters. Likewise, applying Standard Ligatures represents characters according to ligatures available in the font. (See "Using ligatures" for more information.) You can apply many styles in combination, although some, such as Superscript and Subscript, are mutually exclusive. Since version 7.2, QuarkXPress Server has supported the application of OpenType styles, which are provided as attributes to the RICHTEXT element. These have been supplemented with the new OpenType styles that have been added to QuarkXPress 8. OTGlyphs are special glyphs created by combining multiple characters - e.g 3/5 can be represented in a single glyph depending upon the fonts used. These glyphs are available in the Glyph palette in QuarkXPress. In the Modifier DTD, we support using new attributes OTFEATURE and OTVARIANT under the RICHTEXT node. Attribute OTFEATURE contains the value of the OpenType feature applied on text such as AlternateFractions (afrc), AlternateAnnotations, etc. The OTVARIANT attribute shows which variant to use, among the multiple matches found. Support for hanging character sets Hanging character sets handle both hanging punctuation and margin alignment. Margin alignment lets you hang characters partially outside the margin to create visually uniform text alignment along the margin. Hanging punctuation lets you hang punctuation characters fully outside the margin so that the text is flush against either a uniform margin at the beginning of a line of text (leading) or against a uniform margin at the end of a line of text (trailing). For example, the period in the second sample text below is hanging Page 4 outside the trailing margin. The second line in this sample text shows no hang on the left, but shows a leading hang on the right. The punctuation characters in this sample text are trailing hanging characters. You can create custom hanging character classes and hanging character sets in QuarkXPress, or you can use the default classes and sets that come with the software. A hanging character class is a group of characters that should always hang outside the margin or indent inside the margin by the same percentage. A hanging character set is a group of hanging character classes. You can use a hanging character set to apply one or several hanging character classes to paragraphs. In Modifier XML, the hanging characters set applied to text is specified by the FORMAT@HANGINGCHARACTERS attribute. Support for Character Alignment The Character Alignment feature gives you several options for aligning small characters in a line of text to the largest character in a line of text. You can align characters based on their baselines, their em boxes, or their ICF boxes. Em boxes are the bounding boxes of characters. The ideographic character face (ICF) box is a boundary inside the em box beyond which a glyph cannot extend. ICF boxes are necessary to ensure that glyphs in an East Asian text flow do not touch each other. The red area in the diagram below represents the boundaries of the em box. The yellow area represents the ICF box. Red represents the em box. Yellow represents the ICF box. The alignment options available in QuarkXPress through the Style> Character Alignment submenu are available in Modifier XML through the FORMAT@CHARACTERALIGNMENT attribute, which can have the following values: ICFBOXTOP Aligns small characters with the top of the ICF box. ICFBOXBOTTOM Aligns small characters with the bottom of the ICF box. ICFBOXLEFT Aligns small characters with the left side of the ICF box. Page 5 ICFBOXRIGHT Aligns small characters with the right side of the ICF box. EMBOXTOP Aligns small characters with the top edge of the em box of the largest character in a line of horizontal text. EMBOXBOTTOM Aligns small characters with the bottom edge of the em box of the largest character in a line of horizontal text. EMBOXCENTER Aligns small characters with the center of the em box of the largest character. EMBOXLEFT Aligns small characters with the left side of the em box of the largest character. EMBOXRIGHT Aligns small characters with the right side of the em box of the largest character. ROMANBASELINE Aligns small characters with the baseline of the largest character. Examples of horizontal and vertical character alignment Support for Bézier curves Page 6 Previous versions of QuarkXPress Server only supported the modification of the content and of the geometry of the bounding rectangle of a Bézier shape or curve created in QuarkXPress. This also meant that it was not possible to construct a Bézier curve or shape using the Construct namespace, as there was no description in the Modifier XML format of the box shape, only its bounding rectangle. This meant that any shapes would be lost in a workflow which involved deconstructing and then reconstructing a document to Modifier XML. In QuarkXPress Server 8.0, the shape of a Bézier box is not lost with a construct request. The DTD provides all support to maintain the shape of a Bézier box in a construct request For example, for a crescent shape like that pictured here (shown in QuarkXPress, with the drawing points visible), the Modifier XML to represent it shows both a regular position element, representing the box geometry, and then one or more contours, each with multiple vertices. Page 7 Support for clipping paths QuarkXPress Server now supports clipping paths. See the CLIPPING element in the DTD. Support for blends Modifier XML now supports the specification of blends within a box, allowing blend effects used in QuarkXPress documents (as specified in the color palette) to be preserved and created in Modifier XML based workflows. Page 8 Getting started: HTTP QuarkXPress Server accepts HTTP requests from a browser. You can submit HTTP requests manually in the form of a URL from a browser or dynamically from a client-server solution. Regardless of the method you use, the server processes requests and returns rendered layouts in the HTTP response. Depending on the original request, QuarkXPress Server preferences, and the type of data being returned (whether that be PDF, JPEG, QXP, XML, or one of the other formats QuarkXPress Server supports), rendered layouts display in the browser or are saved to a server location. Responses returned to a client-server solution can be manipulated based on the functionality built into the client application. Such a solution may consist of QuarkXPress Server (running on a server computer connected to a network) plus a front-end application (usually Web-based) that provides a graphical user interface (GUI) for end users. The front-end application translates the end users' input into HTTP requests and sends the requests to QuarkXPress Server or QuarkXPress Server Manager. The server processes the requests and returns rendered layouts. All you need to use QuarkXPress Server is the ability to generate HTTP GET/POST requests. That means you can write front-end applications in just about any language that allows you to make HTTP GET/POST requests. This Web Integration Guide (WIG) explains the functions available in QuarkXPress Server and how HTTP requests need to be structured. Related topics: Dissecting a QuarkXPress Server URL Interpreting the QXP Server response Using HTTP GET and POST requests Function overview Page 9 Getting started: Web services The Web services interface is a collection of request classes. You can easily download and use the corresponding SDK WSDL class definitions from here: http://: /quark/services/qxpsmsdk?wsdl Note: Replace above with the IP address of the QuarkXPress Server Manager computer, and with the port number on which to contact QuarkXPress Server Manager. The default port is 8090 for QuarkXPress Server Manager. These classes can be chained together to form compound QuarkXPress Server requests. The samples distributed as part of this documentation demonstrate how these classes can be used to invoke a QuarkXPress Server command and manipulate the response. To determine which class provides access to a particular QuarkXPress Server functionality, see the Function overview . In addition to the classes listed there, the Web services interface includes the following: QManagerSDKSvc processes QuarkXPress Server requests. This object's generic processRequest() method takes a QRequestContext argument and returns a QContentData object containing the QuarkXPress Server response. See the samples distributed or the code snippets in the function documentation for details on how this service can be used. QRequestContext is the argument you pass to QManagerSDKSvc. This object contains settings which must be set once per request. All chained requests are set inside the request context. QRequest is the base class for all request objects (such as PDFRenderRequest). Consequently, all request objects share some common data members. RequestParameters is a generic class for executing any request and for adding dynamic properties to a request. NameValueParam is a generic class for adding dynamic properties to a request. This class is specifically for requests that take box name/id as the parameter name and its content as the value. QContentData is the response returned when a request is executed. QContentData is a hyperlink that follows the same pattern as the classes above. QException is the exception class for the Manager. It is returned by the getErrorObject method. QManagerScriptingSvc is the Web services scripting interface. Page 10 In addition to the core functionality, you can extend the WIG to include your own XTensions software applications by simply modifying an XML file and redeploying the WIG web service. Note: To exclude empty tags in the request HTML using the WIG, set the value of the appropriate variable to null . Note: For Javadocs and WSDL schemas, see the links that display on the QuarkXPress Server Manager Welcome page when you launch QuarkXPress Server Manager. JSP samples are also available from the Welcome page. Related topics: Sample applications Function overview Page 11 QRequestContext Description Type Members Example, Object Model Argument passed to QManagerSDKSvc. Contain settings that must be set once per request. All the chained requests are set inside the request context. Web Service Data Object Name Type Description documentName String File or object name on which the command will b Server name. Default is NULL. Load balancer se serverName String the host itself in this case. serverPort int Port at which the desired server is listening. userName String Server admin username. userPassword String Server admin password. Max number of times to try executing the comma maxRetries int returning failure. requestTimeout int Max time out in milliseconds. Indicates whether the cache should be checked fo useCache boolean existing result or if the command should be execut This value indicates whether the server should sen response as-is (text or binary) or store the respon server and return its location as a URL. Because responseAsURL boolean model works on SOAP, which can be slow when large binary files, you might choose to set this valu you suspect that the response is going to be sever megabytes or larger. Indicates whether file info should be fetched befor bypassFileInfo boolean the command. Context in which the context String command is being executed. QuarkXPress Server request is instances of reque request QRequest chained together. sdk.QRequestContext rc = new sdk.QRequestContext(); rc.documentName = this.DocumentSettings1.documentName.Text; rc.responseAsURL = this.DocumentSettings1.responseAsURL.Checked; rc.useCache = this.DocumentSettings1.useCache.Checked; rc.bypassFileInfo = this.DocumentSettings1.bypassFileInfo.Checked; //Create the service and call it QRequestContext object QManagerSDKSvcService svc = new QManagerSDKSvcService(); sdk.QContentData qc = svc.processRequest(rc); Page 12 QManagerSDKSvc Description Web service called to process the QuarkXPress Server request. It has a generic method processRequest() that takes QRequestContext as an argument and returns QContentData as the QuarkXPress Server response. Type Web Service Methods processRequest Processes the request context and returns the result. Parameter Type Description requestCmd QRequestContext Argument passed to QManagerSDKSvc . Contains settings that must be set once per request. All the chained requests are set inside the request context. createSession Creates a new session and returns a session ID. Parameter Type Description timeout long Timeout for the session in milliseconds. If no call is executed in that time, session is expired and all the open documents in that session are closed without saving. If 0 is passed as value of timeout, default timeout is used. If negative value is passed as timeout, session never expires. closeAlldocs Closes all open documents in the session without saving them. If session does not exist, error is returned. If an error occurs while closing the document, it is logged in the logs. However, the document is marked closed in the internal cache, and no error is returned. Parameter Type Description sessionId Session whose String documents are to be closed. closeDoc Closes the specified document without saving it. Page 13 closeSession getErrorObject getOpenDocs getOpenSessions getPreferences setPreferences getXPressDOM newDoc If session does not exist, error is returned. If the document is not open, error is returned. If the document is opened in another session, error is returned. If an error occurs while closing the document, it is logged in the logs. However, the document is marked closed in the internal cache, and no error is returned. Parameter Type Description docName String Document to be closed. sessionId String Session in which document was opened. Closes the specified session. If the session does not exist, error is returned. If any documents are still open in the session, error is returned. Parameter Type Description sessionId String Session to be closed. Gets the internal error object. If you receive an exception from Web services caused by QuarkXPress Server or Manager (and not a runtime exception such as a null pointer exception), you call this method and pass a stringified form of the exception. The method returns an error object which has easy-to-use methods for getting the error code, getting the error message, etc. Gets all the open documents in the session. If the session does not exist, error is returned. Parameter Type Description sessionId Session whose String open documents are sought. Gets all open sessions. Gets QuarkXPress Server preferences. Sets QuarkXPress Server preferences. Creates a DOM for the specified document. Creates a new document for modification and keeps it open until further notice. The document is created with a single layout. To create a more complex document, use the processRequestEx API. If a document with the same name is already open, error is returned. If the session does not exist, error is returned. Parameter Type Description docName String Document to be Page 14 openDoc opened for modification. Provide the name only. Relative path can be provided at the time of saving. jobJacketName String Name of the job jacket to be used. The job jacket is assumed to be already available on the QuarkXPressserver . jobTicketName String Name of the job ticket to be used. host String QuarkXPress Server that should be used for this document modification. If null, server is taken from load balancer. The server name provided should be a registered server, currently active, or an error is thrown. port int QuarkXPress Server port for the server specified in the previous parameter. This is meaningful only if server has been provided in the previous parameter. sessionId String Session in which document should be opened. Opens the specified document and keeps it open until further notice. If the document is already open, error is returned. If the session does not exist, error is returned. Parameter Type Description docName String Document (along with relative path if required) to be opened for Page 15 modification. host String QuarkXPress Server which should be used for this document modification. If null, server is taken from load balancer. The server name provided should be a registered server, currently active, or an error is thrown. port int QuarkXPress Server port for the server specified in the previous parameter. This is meaningful only if server has been provided in the previous parameter. sessionId String Session in which document should be opened. processRequestEx Executes the request context. If session id is specified, document is kept open after request is executed. If no session is specified, request is executed normally without keeping the document open. If the document is open in another session, error is returned. If the document is marked dirty, error is returned. A document is marked dirty when the server that opened the document has become inactive. In such a case, the document must be closed and opened again. Parameter Type Description reqContextObj QRequestContext Request to be executed. sessionId String Session in which the request should be executed. It can be null. If session id is provided, the document is kept open. If no session id is provided, the request is executed normally, as if processRequest was called. Page 16 saveAllDocs saveDoc Saves all open documents in the session. The documents are saved one by one. If error occurs while saving the document, error is returned immediately and rest of the documents remain unsaved. If a document is marked dirty, it cannot be saved and an error is returned. A document is marked dirty when the server that opened the document has become inactive. In such a case, the document must be closed and opened again. Parameter Type Description relativePath String Relative path where open documents should be saved. If this is provided, the copies of the opened documents with changes made so far are saved in the new location and the opened documents are still unsaved but have all the changes made so far. sessionId String Session in which the document exists. Saves the open document. If a document is marked dirty, it cannot be saved and an error is returned. A document is marked dirty when the server that opened the document has become inactive. In such a case, the document must be closed and opened again. Parameter Type Description docName Document to be saved. Must be String same as used while opening or creating the document. newName New name of the document. Null if it String is to be saved as old name. relativePath String Relative path where the document should be saved. The relative path can also contain the new name of the document. If this is provided, a copy of the open document Page 17 Example, Object Model with changes made so far is saved in the new location and the opened document is still unsaved but has all the changes made so far. sessionId String Session in which the document exists. getXPressDOMEx Lets you create a DOM of a particular layout or portion of a layout. getXMLFromXPre Creates an XML string out of the DOM. ssDOM getXPressDOMFro Takes a raw XML representation of a project as a string and mXML returns an object model representing that project, with Project as the root class. QRequestContext rc = new QRequestContext(); rc.documentName = "test.qxp"; rc.responseAsURL = false; JPEGRenderRequest jpegRequest = new JPEGRenderRequest(); rc.request = jpegRequest; QManagerSDKSvcService svc = new QManagerSDKSvcService(); QContextData response = svc.processRequest(rc); Page 18 QRequest Description Type Members Base class for all the request objects, such as PDFRenderRequest. All the request ob some common data members, which are described below. Web Service Data Object Name Type Description QuarkXPress Serve request QRequest includes instances o objects chained toge Page 19 RequestParameters Description Type Members Additional Comments Example, Object Model Generic class for executing any request and also for adding dynamic properties to the request. Web Service Data Object Name Type Description namespace String Namespace of the request - e.g., jpeg. params NameValueParam[] Parameter array for the specified request - e.g., jp This class can be used to send any request for which a specific class does not exist. When this request exists in the chain, its namespace is concatenated with the namespaces of other requests. So the namespace provided here can be null. The parameters of this class can be used to parameterize the request being sent to the server. QRequestContext rc = new QRequestContext(); RequestParameters request = new RequestParameters(); request.setNamespace("jpeg"); rc.setRequest = request; NameValueParam p1 = new NameValueParam(); p1.setParamName = "jpegquality"; p1.setTextValue = "4"; request.setParams(new NameValueParam[]{p1}); Page 20 NameValueParam Description Type Members Generic class for adding dynamic properties to the request. This class is specifically for the requests that take the box name/id as the parameter name and the box content as the parameter value. Web Service Data Object Name Type Description Name of the parameter. In most cases this will be paramName String of the box. textValue String Text value of the box. Stream value of the box. Either text or stream valu streamValue byte[] set. contentType String The MIME content type of the parameter. Page 21 QContentData Description Type Members Example, Object Model Response to a Web Services call to QuarkXPress Server. Web Service Data Object Name Type Description The type of the response. For example, "text/xml" contentType String "text/plain." If the response type is text, this contains the text. O textData String this value is null. If the "responseAsURL" parameter was set to "tru responseURL String request, this contains the URL of the response. O this value is null. If the response type is binary, this contains the by streamValue binary Otherwise, this value is null. If the response type is text, this value indicates the encodingType String of the text (e.g., UTF-8 or ANSI). Identifies the server actualServerPortUsed String port. actualServerUsed String Identifies the server. If the response returned by the server headers String is headers, this array contains the header response. If the response returned by the server is multipart, multipartResponse String contains the multipart response parts returned by QRequestContext context = new QRequestContext(); context.setDocumentName("sample.qxp"); context.setResponseAsURL(true); JPEGRenderRequest request = new JPEGRenderRequest(); request.setJPEGQuality("4"); context.setRequest(request); QManagerSDKSvcServiceLocator serviceLocator = new QManagerSDKSvcServiceLocator(); QManagerSDKSvc service = serviceLocator.getqxpsmsdk(); QContentData response = service.processRequest(context); System.out.println(response.getResponseURL()); Page 22 QException Description Type Members Example, Object Model Exception class for the Manager. This class is returned by the getErrorObject method Exception Name Type Description HTTP response whi httpResponseCode String command . Manager error code managerErrorCode String exception. Manager localized e managerErrorMessage String message. QuarkXPress serve serverErrorCode String response from Serv Response message f serverErrorMessage String QuarkXPress Serve QuarkXPress Serve serverExtendedMessage String extended message. String docName = "notexisting.qxp"; try { QRequestContext ctx = getRequestContext(docName); QRequest request = getJPEGRequest(); ctx.setRequest(ctx); QContentData response = getService().processRequest(ctx); System.out.println(response.getResponseURL()); } catch (Exception ex) { //PLEASE NOTE that the following would work only if manager threw an exce is not a runtime exception. In latter cases, an empty error object will be returned. QException error = getService().getErrorObject(ex.toString()); System.out.println(error.getServerErrorCode()); } Page 23 QManagerScriptingSvc Description Type Methods Scripting interface via web service. Web Service Data Object checkScriptSyntax Checks the syntax of the script. Parameter Type Description id String Script id. deleteScript Deletes a script. Parameter Type Description id String Script id. executeScript Executes a script. Parameter Type Description id String Scipt id. executeScriptFunction Executes a function of a script. Parameter Type Description id String String id. function String Function to execute. executeScriptFunction Executes a function of a script, passing arguments to it. WithArguments Parameter Type Description id String String id. function String Function to execute. arguments String[] Arguments to pass to function executeScriptWithVar Execute a script, declaring variables for the script to use. s Parameter Type Description id String Script id. variables QScriptVar[] Variables to be used by scrip getAllScripts Gets all scripts saved with the system. getErrorObject Creates error object from error string. Parameter Type Description errorString String Error string to use. getScript Gets script with specified id. Parameter Type Description id String Script id. getScriptExecutionDet Gets runtime details of a script. ails Parameter Type Description scriptId String Script id. getSupportedLanguag Gets supported scripting languages. es isLanguageSupported Gets whether a specified scripting language is supported. Parameter Type Description Page 24 updateScript language String Language to check. Updates a script. If the script does not exist, adds it. Parameter Type Description script QScript Script to update or add. Page 25 Dissecting a QuarkXPress Server URL The general URL format to access QuarkXPress Server and apply parameters to projects or to modify QuarkXPress Server behavior through a Web browser is as follows: http://Server:Port/Namespace/Directory/Documentname?Parameter=Value For QuarkXPress Server Manager, use the following URL: http://Server:Port/quark/servlet/qxpsm/Namespace/Directory/Documentname?Parameter=Value Note: This Guide provides numerous sample URLs in QuarkXPress Server format. To convert these examples for use with QuarkXPress Server Manager, simply insert /quark/servlet/qxpsm after Port/ . Note: Earlier versions of QuarkXPress Server Manager work with absolute paths only (for example, Hard Drive:Users:UserName:FolderName:ImageName on Mac OS). With QuarkXPress Server Manager 7.22, you can use absolute paths or you can use relative paths. When you modify a project with SDK objects or SDK classes (such as “SaveAsRequest”) that uses absolute paths, you can use relative paths. The relative paths are relative to QuarkXPress Server, which means the path is relative to the document pool. If you use multiple QuarkXPress Servers, you should be sure to use a common document pool. Server The name or IP address of the computer for QuarkXPress Server or QuarkXPress Server Manager. Port The port number on which to contact QuarkXPress Server or QuarkXPress Server Manager. The default port is 8080 for QuarkXPress Server and 8090 for QuarkXPress Server Manager. Namespace Defines what the URL action will be and any parameters and conditions available to that namespace. Directory The path in the document pool where the project is stored. Note: The directory path is the relative path from the QuarkXPress Server document pool. To access the root level, no directory path is necessary. Document Name The name of the QuarkXPress project that you can access from the document pool or the content provider. Parameter Further defines the URL action with attributes and values allowed for the namespace or general call. Parameters are passed in the form attribute=value and are separated by the "&" character. Related topics: Page 26 Getting started: HTTP Interpreting the QXP Server response Using HTTP GET and POST requests Function overview Page 27 Interpreting the QuarkXPress Server response Success scenario When QuarkXPress Server Manager successfully processes a request through the HTTP interface, the response is the same as QuarkXPress Server's response unless the user has given additional parameters to Manager - e.g, response as url, response redirect, use cache, etc. See the User Guide for all the additional parameters available through the Manager HTTP interface. Failure scenario In case of error, QuarkXPress Server Manager retries the request on the same or different QuarkXPress Server depending on the error and global settings done in the admin client of QuarkXPress Server Manager. See the User Guide for the details. If Manager is unable to process the request, it sends back an XML error response in addition to all the header error codes returned by QuarkXPress Server. The XML contains all the details of error that occurred. Such an XML error response might look like this: - Related topics: Getting started: HTTP Dissecting a QuarkXPress Server URL Using HTTP GET and POST requests Function overview Page 28 Using HTTP GET and POST requests This section describes how you can use HTML to interact with QuarkXPress Server. QuarkXPress Server supports both the GET and the POST methods of HTML. When you use the GET method, the browser encodes form data into a URL. When you use the POST method, form data is passed within a message body. Use the GET method when the form processing is idempotent, and in such cases only. As a simplification, we can say that GET is for getting (retrieving) data whereas POST can involve storing or updating data, ordering a product, or sending an e-mail. Working with QuarkXPress Server using an HTTP GET request To view the HTML, click here . Use this HTML to specify a server and its port where you want to send the request. You can specify the name of a project, the output type, and scaling. You can also specify the name of a text box and a picture box, and the paths of the text files and picture files to flow into them. You must specify the path of the text and picture file on the server system. You can also use this HTML to specify the page and layout number of the project. The form section of the HTML begins with the following line of code: 404 -43 File not found. M8000001 The server could not locate the specified file.