* Electron version: 1.6.3
* Operating system: macOS 10.12.3 (Sierra)

### Expected behavior

`clipboard.read("com.adobe.pdf", "binary")` should return data as a `Buffer` or `String` with `binary` encoding if given clipboard data type is present.

### Actual behavior

Data is returned as `String`. When save to as a file using 'binary' encoding, file length is shorter than actual clipboard data size (verified using ClipboardViewer).

### How to reproduce

Use Sketch.app to draw a circle vector. Copy the circle into clipboard. One of the data types added to clipboard will be of type "com.adobe.pdf". Switch to test electron app that calls `clipboard.read`.
Now save the string to a file using `binary` encoding. Resulting PDF file can't be viewed as PDF and PDF validation will fail.

**UPDATE:** Other vector editing apps like Illustrator or Affinity Designer should also create `com.adobe.pdf" as well as Apple PDF Pasteboard type since this is how vector copy-paste works across editors.

**UPDATE2:** Just found a closed issue mentioning this may be due to Chromium returning only string. If this is true perhaps platform clipboard should be accessed directly instead of relying on Chromium.
atom/common/api/atom_api_clipboard.cc
mate::Arguments* args) {
  ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
  ui::Clipboard::FormatType format(ui::Clipboard::GetFormatType(format_string));
  std::string data;
  clipboard->ReadData(format, &data);
  return data;
}
void Clipboard::Write(const mate::Dictionary& data, mate::Arguments* args) {
  ui::ScopedClipboardWriter writer(GetClipboardType(args));
  base::string16 text, html, bookmark;
  gfx::Image image;
  if (data.Get("text", &text)) {
    writer.WriteText(text);
    if (data.Get("bookmark", &bookmark))
      writer.WriteBookmark(bookmark, base::UTF16ToUTF8(text));
  }
  if (data.Get("rtf", &text)) {
    std::string rtf = base::UTF16ToUTF8(text);
    writer.WriteRTF(rtf);
  }
  if (data.Get("html", &html))
    writer.WriteHTML(html, std::string());
  if (data.Get("image", &image))
    writer.WriteImage(image.AsBitmap());
}
base::string16 Clipboard::ReadText(mate::Arguments* args) {