* 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.h
public:
  static ui::ClipboardType GetClipboardType(mate::Arguments* args);
  static std::vector<base::string16> AvailableFormats(mate::Arguments* args);
  static bool Has(const std::string& format_string, mate::Arguments* args);
  static void Clear(mate::Arguments* args);
  static std::string Read(const std::string& format_string,
                          mate::Arguments* args);
  static void Write(const mate::Dictionary& data, mate::Arguments* args);
  static base::string16 ReadText(mate::Arguments* args);
  static void WriteText(const base::string16& text, mate::Arguments* args);
  static base::string16 ReadRtf(mate::Arguments* args);
  static void WriteRtf(const std::string& text, mate::Arguments* args);
  static base::string16 ReadHtml(mate::Arguments* args);
  static void WriteHtml(const base::string16& html, mate::Arguments* args);
  static v8::Local<v8::Value> ReadBookmark(mate::Arguments* args);
  static void WriteBookmark(const base::string16& title,
                            const std::string& url,
                            mate::Arguments* args);
  static gfx::Image ReadImage(mate::Arguments* args);
  static void WriteImage(const gfx::Image& image, mate::Arguments* args);
  static base::string16 ReadFindText();
  static void WriteFindText(const base::string16& text);
 private:
  DISALLOW_COPY_AND_ASSIGN(Clipboard);
};
}  
}  
#endif