QWC Print service¶
Forwards a print request to the OGC service, allowing injecting additional GetPrint WMS parameters (i.e. layout user labels).
API documentation:
http://localhost:5019/api/
Configuration¶
The static config files are stored as JSON files in $CONFIG_PATH with subdirectories for each tenant,
e.g. $CONFIG_PATH/default/*.json. The default tenant name is default.
JSON config¶
- JSON schema
- File location:
$CONFIG_PATH/<tenant>/printConfig.json
Example:
{
"$schema": "https://raw.githubusercontent.com/qwc-services/qwc-print-service/master/schemas/qwc-print-service.json",
"service": "print",
"config": {
"ogc_service_url": "http://localhost:5013/ows/",
"print_pdf_filename": "qwc.pdf",
"label_queries": [
{
"db_url": "postgresql:///?service=fachdaten",
"query": "SELECT 'Bearbeiter/in: ' || vorname || ' ' || nachname FROM benutzer WHERE username = $username$",
"params": [
"NAME"
]
}
],
"label_values": [
{
"field": "USERNAME",
"value": "$username$"
}
]
}
}
label_queries allows configuring additional parameters to inject into the WMS GetPrint request, which will be computed from a DB query
The format is as follows:
"label_queries": [
{
"db_url": "<db_url>",
"query": "<query>",
"params": ["<ParamName1>", ...]
},{
...
}
]
where:
queryis an arbitrary query, returning exactly one row. The$username$placeholder can be used to inject the current username.paramsis an array of parameter names to inject. The same number of parameters as number of returned values by the query must be specified.
Similarly, label_values allows configuring additional static parameters to inject into the WMS GetPrint request.
The format is as follows:
"label_values": [
{
"field": "<ParamName1>",
"value": "<value>"
},{
...
}
]
Environment variables¶
Config options in the config file can be overridden by equivalent uppercase environment variables.
| Variable | Description |
|---|---|
OGC_SERVICE_URL |
OGC Service URL |
QGIS_SERVER_VERSION |
QGIS Server version (e.g. 2.18.19, 3.4.1) |
Docker usage¶
See sample docker-compose.yml of qwc-docker.
Development¶
Set the CONFIG_PATH environment variable to the path containing the service config and permission files when starting this service (default: config).
export CONFIG_PATH=../qwc-docker/volumes/config
Configure environment:
echo FLASK_ENV=development >.flaskenv
Install dependencies and run service:
uv run src/server.py