outline icon indicating copy to clipboard operation
outline copied to clipboard

Images no longer appearing in Print/PDF

Open SaadBazaz opened this issue 11 months ago • 7 comments

Is there an existing issue for this?

  • [x] I have searched the existing issues

This is not related to configuring Outline

  • [x] The issue is not related to self-hosting config

Current Behavior

Whenever I press three dot menu -> "Print", the images quickly vanish and don't appear in the generated PDF.

https://github.com/user-attachments/assets/643a488d-e008-4438-b006-b4d27c2d4c06

Expected Behavior

This used to work, images used to appear in the print. I'm not sure what changed.

Steps To Reproduce

No response

Environment

- Outline: (latest as of now)
- Browser: Chrome

Anything else?

No response

SaadBazaz avatar May 14 '25 21:05 SaadBazaz

I can't reproduce this issue on cloud or local development, does it happen for all images on all pages?

I also notice that the entire sidebar and some of the header buttons go missing in the background, likely related.

tommoor avatar May 15 '25 00:05 tommoor

I have reported this issue several times, but it still has not been resolved. - #7087 #8666

The issue does not occur in the exported HTML, but it only occurs when printing the page.

seong889 avatar May 22 '25 04:05 seong889

@tommoor When I changed the 'Emulate CSS media type' to 'print' in DevTools, the print function seemed to work normally. However, when clicking the print button in the normal state, the page is re-rendered. During this process, images that haven't fully loaded in time may fail to print.

Would it be possible to test this scenario with network throttling or emulated network conditions to replicate slower loading times?

seong889 avatar May 22 '25 04:05 seong889

Next time it happens take a look in the network requests and see if there are failed requests for the images.

tommoor avatar May 22 '25 12:05 tommoor

@tommoor Chrome browser has this issue.

Image

as you can see, images network requests are pending status.

firefox - fine chrome/edge - has issue.

to avoid this error, simplly wait for image loading. or find other good solution.

ps. If you can't reproduce, just slow down network speed.

tienipia avatar Jun 05 '25 07:06 tienipia

Nothing I do will reproduce this. One thing of note is that the images should not be reloading at all and don't in my tests – perhaps something is preventing the caching in your setup

tommoor avatar Jun 13 '25 02:06 tommoor

I'm also experience this issue with chrome and edge. The mentioned workaround with "'Emulate CSS media type' to 'print' in DevTools" did work. I checked the network traffic and I don't see any image related connections when I open the print dialog.

Both my installations are behind a nginx reverse proxy. Is there anything that would help you reproduce this problem?

bigitag avatar Jul 17 '25 08:07 bigitag

Same issue, Our Outline is behind Caddy (also tried behind Azure Application Gateway, same result) and images are not loading for print in Edge or in desktop edition. Everything else works nicely.

My docker compose file:

services:
  outline:
    image: ${OUTLINE_IMAGE}:${OUTLINE_TAG}
    container_name: outline
    env_file: ./.env
    expose:
      - "3000"
    networks:
      - caddy
      - backend
    volumes:
      - outline_data:/var/lib/outline/data
    depends_on:
      - postgres
      - redis
    restart: always
    deploy:
      resources:
        limits:
          cpus: '5.0'
          memory: 12G
        reservations:
          cpus: '3.0'
          memory: 8G
    labels:
      caddy: "*.${BASE_DOMAIN}"
      caddy.reverse_proxy: "outline:3000"
      caddy.tls: "${CA_CONTACT}"
      caddy.tls.dns: "cloudflare ${CF_API_TOKEN}"
      caddy.tls.ca: "${CA_SERVER}"
      caddy.tls.resolvers: "1.1.1.1"

  caddy:
    image: ${CADDY_IMAGE}:${CADDY_TAG}
    container_name: caddy
    env_file: ./.env
    ports:
      - 80:80
      - 443:443
    networks:
      - caddy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - caddy_data:/data
    restart: always
    deploy:
      resources:
        limits:
          cpus: '2.0'
          memory: 1G
        reservations:
          cpus: '0.25'
          memory: 250M
  redis:
    image: ${REDIS_IMAGE}:${REDIS_TAG}
    container_name: redis
    env_file: ./.env
    expose:
      - "6379"
    networks:
      - backend
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 30s
      retries: 3
    restart: always
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 1G
        reservations:
          cpus: '0.25'
          memory: 250M

  postgres:
    image: ${POSTGRES_IMAGE}:${POSTGRES_TAG}
    container_name: postgres
    env_file: ./.env
    command: -c 'max_connections=200'
    expose:
      - "5432"
    networks:
      - backend
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD", "pg_isready", "-d", "outline", "-U", "user"]
      interval: 30s
      timeout: 20s
      retries: 3
    restart: always
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 1G
        reservations:
          cpus: '0.25'
          memory: 250M

volumes:
  outline_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /var/lib/outline_data/data
  postgres_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /var/lib/postgres_data/data
  caddy_data:

networks:
  caddy:
  backend:

My .env file (slightly redacted) and selected only relevant items. If you think you need some more ENVs then tell me which ones, did not want to paste entire file.

OUTLINE_IMAGE=outlinewiki/outline
OUTLINE_TAG=0.85

CADDY_IMAGE=redacted/foss/caddy-docker-proxy
CADDY_TAG=2.10

REDIS_IMAGE=docker.io/library/redis
REDIS_TAG=8
POSTGRES_IMAGE=docker.io/library/postgres
POSTGRES_TAG=17

# Reverse proxy related for certificate enrollment
BASE_DOMAIN=example.com
DOMAIN=wiki.${BASE_DOMAIN}
CF_API_TOKEN=redacted
[email protected]
CA_SERVER=https://acme-v02.api.letsencrypt.org/directory
CADDY_INGRESS_NETWORKS=caddy

URL=https://${DOMAIN}
COLLABORATION_URL=
CDN_URL=
FILE_STORAGE=local
FORCE_HTTPS=true

megastary avatar Jul 17 '25 10:07 megastary

This issue seems to no longer occur on our instance after updating from 0.84.0 to 0.86.1.

3ster avatar Aug 11 '25 11:08 3ster