--- layout: page title: media_type permalink: /parameters/media_type/ parent: Parameters nav_order: 80 description: >- Render a page using its screen or print CSS media styles. --- # Using media_type {: .no_toc } {: .fs-9 } Choose whether Chrome applies screen or print media styles when rendering. {: .fs-6 .fw-300 }
## How it works The `media_type` parameter controls the CSS media type Chrome emulates. It affects `@media` rules, linked stylesheets with a `media` attribute, and JavaScript checks such as `window.matchMedia()`. ## Values | Value | Description | |:------|:------------| | `screen` | Apply styles intended for screens. This is the default when `media_type` is omitted. | | `print` | Apply print-specific styles, including rules inside `@media print`. | ## Render with print styles ```bash curl -X POST https://hcti.io/v1/image -u 'UserID:APIKey' \ --data-urlencode url="https://example.com" \ --data media_type=print ``` ```json { "url": "https://example.com", "media_type": "print" } ``` ## Example with different screen and print styles ```json { "html": "

Quarterly report

Report content

", "css": "article { padding: 32px; } @media screen { article { background: #eef6ff; } } @media print { nav { display: none; } article { background: white; color: black; } }", "media_type": "print" } ``` In this example, the navigation is hidden and the print color scheme is applied before the image is captured. ## Common use cases Use `media_type: "print"` to: - Preview a webpage's print stylesheet - Hide navigation, controls, or other screen-only elements - Render layouts that use print-specific typography or page-break rules - Test how a page responds to `window.matchMedia("print")` {% include hint.md title="Output format" text="media_type controls CSS rendering only. It does not change the output format to PDF. Request the generated image URL with a .pdf extension when you need a PDF." %} {% include code_footer.md version=2 %}