← Back to team overview

sikuli-driver team mailing list archive

[Bug 1317773] [NEW] [request] want to put RTF-formated text to the clipboard - solution

 

Public bug reported:

Hi all!

I need put the RTF formated string and "text/rtf" DataFlavor into
clipboard . Here is code what I started:

from java.awt import Toolkit
from java.awt.datatransfer import Clipboard, StringSelection, DataFlavor, UnsupportedFlavorException
from java.io import *

def ClipboardPutRtfString(rtf_str):
    cb_data = StringSelection(rtf_str)
    cb = Toolkit.getDefaultToolkit().getSystemClipboard()
    RTF_FLAVOR = DataFlavor("text/rtf", "Rich Text Format")
    p = (cb_data, RTF_FLAVOR)
    cb.setContents(p, None) 
if __name__ == '__main__' :
    RTF_STRING = u"{\\rtf1\\ansi\\deff0\r\n{\\colortbl;\\red0\\green0\\blue0;\\red255\\green0\\blue0;}\r\nThis line is the default color\\line\r\n\\cf2\r\nThis line is красная\\line\r\n\\cf1\r\nThis line is the default color\r\n}\r\n}"
    ClipboardPutRtfString(RTF_STRING)

But now I'm sticked with how prepare transferable p object in Jython to
pass it to setContents method, because my example gets error:

[error] TypeError ( setContents(): 1st arg can't be coerced to java.awt.datatransfer.Transferable )
[error] --- Traceback --- error source first line: module ( function ) statement ##: main ( ClipboardPutRtfString ) cb.setContents(p, None)
[error] --- Traceback --- end --------------

** Affects: sikuli
     Importance: Medium
     Assignee: RaiMan (raimund-hocke)
         Status: In Progress

** Changed in: sikuli
       Status: New => In Progress

** Changed in: sikuli
   Importance: Undecided => Medium

** Changed in: sikuli
     Assignee: (unassigned) => RaiMan (raimund-hocke)

** Changed in: sikuli
    Milestone: None => 1.2.0

-- 
You received this bug notification because you are a member of Sikuli
Drivers, which is subscribed to Sikuli.
https://bugs.launchpad.net/bugs/1317773

Title:
  [request] want to put RTF-formated text to the clipboard - solution

Status in Sikuli:
  In Progress

Bug description:
  Hi all!

  I need put the RTF formated string and "text/rtf" DataFlavor into
  clipboard . Here is code what I started:

  from java.awt import Toolkit
  from java.awt.datatransfer import Clipboard, StringSelection, DataFlavor, UnsupportedFlavorException
  from java.io import *

  def ClipboardPutRtfString(rtf_str):
      cb_data = StringSelection(rtf_str)
      cb = Toolkit.getDefaultToolkit().getSystemClipboard()
      RTF_FLAVOR = DataFlavor("text/rtf", "Rich Text Format")
      p = (cb_data, RTF_FLAVOR)
      cb.setContents(p, None) 
  if __name__ == '__main__' :
      RTF_STRING = u"{\\rtf1\\ansi\\deff0\r\n{\\colortbl;\\red0\\green0\\blue0;\\red255\\green0\\blue0;}\r\nThis line is the default color\\line\r\n\\cf2\r\nThis line is красная\\line\r\n\\cf1\r\nThis line is the default color\r\n}\r\n}"
      ClipboardPutRtfString(RTF_STRING)

  But now I'm sticked with how prepare transferable p object in Jython
  to pass it to setContents method, because my example gets error:

  [error] TypeError ( setContents(): 1st arg can't be coerced to java.awt.datatransfer.Transferable )
  [error] --- Traceback --- error source first line: module ( function ) statement ##: main ( ClipboardPutRtfString ) cb.setContents(p, None)
  [error] --- Traceback --- end --------------

To manage notifications about this bug go to:
https://bugs.launchpad.net/sikuli/+bug/1317773/+subscriptions


Follow ups

References