### Function

# EvinceDocument Document factory_get_document_for_stream

#### Declaration [src]

    EvDocument*
    ev_document_factory_get_document_for_stream (
      GInputStream* stream,
      const char* mime_type,
      EvDocumentLoadFlags flags,
      GCancellable* cancellable,
      GError** error
    )

#### Description [src]

Synchronously creates a `EvDocument` for the document from `stream`; or, if no backend handling the document’s type is found, or an error occurred on opening the document, returns `NULL` and fills in `error`. If the document is encrypted, it is returned but also `error` is set to `EV_DOCUMENT_ERROR_ENCRYPTED`.

If `mime_type` is non-`NULL`, this overrides any type inferred from the stream. If the mime type cannot be inferred from the stream, and `mime_type` is `NULL`, an error is returned.

Available since: | 3.6

#### Parameters

`stream` | `GInputStream`
| A `GInputStream`.
| The data is owned by the caller of the function.
`mime_type` | `const char*`
| A mime type hint.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
| The value is a NUL terminated UTF-8 string.
`flags` | `EvDocumentLoadFlags`
| Flags from `EvDocumentLoadFlags`.
`cancellable` | `GCancellable`
| A `GCancellable`, or `NULL`.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`error` | `GError **`
| The return location for a `GError*`, or `NULL`.

#### Return value

Returns: | `EvDocument`
| A new `EvDocument`, or `NULL`.
| The caller of the function takes ownership of the data, and is responsible for freeing it.